方法封装(Alt+Shift + M)
//创建集合
//HashSetH=new HashSet();
Set
set=new HashSet();//父接口引用子类
//添加元素
set.add("Holl");
set.add("Java");
//遍历集合1.
// IteratorIt=set.iterator();
// while(It.hasNext()){
// System.out.println(It.next());
// }
//转数组2.
// Object[] orr=set.toArray();
// for(int i = 0; i < orr.length; i++) {
// System.out.println(orr[i]);
// }
//foreach3.
for(String string : set) {
System.out.println(string);
}
Set集合的特点
无序(存储和读取的顺序有可能不一样)
不允许重复的元素!(唯一)
直接打印类对象,打印的是tostring()方法
//根据添加新元素的hashcode()返回值计算出hash值
??hashset的add()方法不能去重的原因
HashSet的add()方法,首先会使用当前集合中的每一个元素和新添加的元素进行Hash值比较
如果hash值不一样,则直接添加新的元素
如果hash值一样,比较地址值,或者使用equlas方法进行比较.
比较结果一样,则认为是重复不添加
所有的比较结果不一样则添加
(因为自定义对象存的是地址:所以不一样)
Collections:
面试题:
Collection和Collections有什么区别
Collenction是集合体现的最顶层,包含了集合体系的共性
Collections是一个工具类,所有的方法都是static的.方法就是用于操作Collection
·Static
int binarySearch(List list,T key)使用二分查找指定元素在指定列表的索引位置
List集合只能存对象
·static void copy(List dest,list src):把原列表中的数据覆盖到目标列表
注意:被覆盖的列表长度要大于等于原列表的长度
·Staticvoid fill(List list,object obj)
o使用指定的对象填充指定列表的所有元素!(一键修改所有元素)
·Static
void reverse(List list) //反转
·Static
void shuffle(List list)傻否,随机置换;
·Static
void sort (List list)升序
·Static
void swap(Lit s list ,int I,int j);将指定列表中的两个索引进行置换
fonU����?