Collections类
Collections类为集合类的一些工具类。都为静态方法。经常用法例如以下:
@Test
public <T> void test() {
List<String> list = new ArrayList<String>();
list.add("3");
list.add("1");
list.add("6");
list.add("2");
list.add("5");
/**增添“9” **/
Collections.addAll(list, "9");
printCollection(list); // 316259
/** 依据元素的自然顺序 对指定列表按升序进行排序。 **/
Collections.sort(list);
/** 用二分查找法查找list的元素的位置(使用之前必须使用sort先进行排序) **/
Collections.binarySearch(list, "6");// 返回6的位置4
/** 继承Comparator接口 ( 假设o1小于o2,返回一个负数;假设o1大于o2,返回一个正数;假设他们相等。则返回0;) **/
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// TODO Auto-generated method stub
return Integer.parseInt(o2) - Integer.parseInt(o1); // 降序排列
}
});
printCollection(list);// 965321
/**
* 使用copy复制集合数据时,必须保证新集合中的size大于或等于旧集合中的size(注:ArrayList中的size和容纳量是有差别的。
* 初始化的时候能够初始化其容纳量,可是size一直为
* 0,当进行add时候才会数量加1,为保证size的数量,初始化採取其构造方法,形式例如以下:(Arrays.asList(new
* String[list.size()]))
**/
List<String> list1 = new ArrayList<String>(
Arrays.asList(new String[list.size()]));
Collections.copy(list1, list);
printCollection(list1);// 965321
List<String> list2 = new ArrayList();
/** 假设两个指定 collection 中没有同样的元素,则返回 true。 **/
Collections.disjoint(list, list2);// 返回true
/** 用一个元素取代集合中全部元素 **/
Collections.fill(list, "2");
printCollection(list);// 返回222222
/** 元素在集合中出现的次数 **/
Collections.frequency(list, "22");
/** 返回集合中最大的 **/
Collections.max(list1);// 返回9
/** 集合中最小的 **/
Collections.min(list1); // 返回1
/** 复制5个參数90成为一个新的集合list3 ,且新的集合不可更改(可初始化一个新创建的 List) **/
List list3 = Collections.nCopies(5, "90");
printCollection(list3);// 返回9090909090
/**
* 将list集合中为2的值替换为1, 注:使用 newVal 替换 list 中满足 (oldVal==null ? e==null :
* oldVal.equals(e)) 的每一个 e 元素。
**/
Collections.replaceAll(list, "2", "1");
printCollection(list); // 返回111111
/** 随机交换位置 **/
// Collections.shuffle(list1);
/** 反转集合位置 **/
Collections.reverse(list1);// 123569
printCollection(list1);
// 交换集合的位置,位置1和位置2互调
Collections.swap(list1, 0, 1);// 213569
printCollection(list1);
// 总体右移动一位
Collections.rotate(list1, 1); // 921356
printCollection(list1);
}
public void printCollection(Collection<String> collection) {
System.out.println();
Iterator it = (Iterator) collection.iterator();
while (it.hasNext()) {
System.out.print(it.next());
}
}

浙公网安备 33010602011771号