*Collections工具类的使用*
小案例
package com.collectionpractise;
import javax.sound.midi.Soundbank;
import java.lang.reflect.Array;
import java.util.*;
/**
* Collections集合工具类的使用
*/
public class CollectionDemo01 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(20);
list.add(10);
list.add(30);
list.add(60);
list.add(80);
list.add(90);
list.add(70);
//sort排序
System.out.println("排序之前:"+list);
Collections.sort(list);//采用的是升序
System.out.println("排序之后:"+list);
//binarySearch 对集合中的元素进行二分查找,再进行二分查找的时候一定是要先进行排序。
int i = Collections.binarySearch(list, 11);//如果没有找到的话,就返回一个负值
System.out.println("找到还是没有找到:"+i);
//copy复制
ArrayList<Integer> listcopy = new ArrayList<Integer>();
for (int j = 0; j <list.size() ; j++) {
listcopy.add(0);
}
Collections.copy(listcopy,list);//如果直接进行copy的话会报错java.lang.IndexOutOfBoundsException: Source does not fit in dest 。解决方案:先给目标集合传点数据,就好了
System.out.println(listcopy);
//reverse 反转
Collections.reverse(list);
System.out.println("反转之后:"+list);
//shuffle 打乱 洗牌
Collections.shuffle(list);
System.out.println("打乱之后:"+list);
//补充:list转换成数组
System.out.println("=============list转换成数组================");
Integer[] arr = list.toArray(new Integer[0]);//如果不够的话,会进行补齐 如果是0的话会自动进行扩容。
System.out.println(arr.length);
System.out.println(Arrays.toString(arr));
//数组转成集合
System.out.println("==========数组转成集合============");
String[] names={"张三","李四","王五"};
//将数组转换成集合是一个受限和,不能够添加和删除集合中的元素
List<String> list1 = Arrays.asList(names);
// list1.add("赵六");//java.lang.UnsupportedOperationException
System.out.println(list1);
//另外需要注意:把基本数据类型转换成集合时,需要修改为包装类型
// int[] nums={100,200,300,400,500};
// List<int[]> ints = Arrays.asList(nums);
// System.out.println(ints.toString()); //这样写的话,最后是遍历不出来集合中的元素的
Integer[] nums={100,200,300,400,500};
List<Integer> ints = Arrays.asList(nums);
System.out.println(ints.toString());//这样写的话,最后是能够遍历出来集合中的元素的
}
}
运行结果:
排序之前:[20, 10, 30, 60, 80, 90, 70]
排序之后:[10, 20, 30, 60, 70, 80, 90]
找到还是没有找到:-2
[10, 20, 30, 60, 70, 80, 90]
反转之后:[90, 80, 70, 60, 30, 20, 10]
打乱之后:[70, 60, 30, 80, 10, 90, 20]
=============list转换成数组================
7
[70, 60, 30, 80, 10, 90, 20]
==========数组转成集合============
[张三, 李四, 王五]
[100, 200, 300, 400, 500]