Collection 接口是集合层次结构中的根接口,Set,List 都是其派生出来的子接口。
它定义了在集合中的添加,清除,遍历元素的操作。
Collections类完全由在集合上进行操作或返回集合的静态方法组成,其中很多 方法都是多态算法,这是一个能给编程带来很大好处的类,提高了代码的重用率。例如:把一副扑克牌打乱:Collections.shuffle(cards);
Collections类:
示例:
package com.summary.collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Random;
public class CollectionsDemo {
public static void main(String[] args) {
List<String> list1 =new ArrayList<String>(3);
List<String> list2 =new ArrayList<String>(3);
String[] str = {"aaa","bb","cccc"};
Collections.addAll(list1,str);//将所有指定元素添加到指定 collection中
System.out.println(list1);//[aaa, bb, cccc]
int idx1 =Collections.binarySearch(list1,"a",new Comparator<String>() {//二分法查找
public int compare(String o1, String o2) {
return o1.length() -o2.length();
}
});
System.out.println(idx1);//-1没找到返回 -1
int idx2 =Collections.binarySearch(list1,"bb");
System.out.println(idx2);//1
Collections.addAll(list2,str);
Collections.copy(list2,list1);//做复制操作的时候,要确保两个list列表的长度必须相等,不然会抛出如下异常:
//Exception in thread "main"java.lang.IndexOutOfBoundsException: Source does not fit indest
System.out.println(list2);
Collections.fill(list2,"f");//[aaa,bb,cccc]//以指定的元素填充列表
System.out.println(list2);//[f, f, f]
Collections.sort(list1,new Comparator<String>(){//根据指定的比较器对list进行排序
public int compare(String o1, String o2) {
return o1.length() -o2.length();
}
});
System.out.println(list1);
Collections.shuffle(list1);//随机洗乱列表中的元素
System.out.println(list1);//[bb,aaa,cccc]
Collections.shuffle(list1,new Random());
System.out.println(list1);//[cccc,bb,aaa]
}
}