方法封裝(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?????