Collection工具类
Collection工具类:
集合工具类,定义除了存取以外的集合常用方法
方法:
- public static void reverse(List<?> list) //反转集合中元素的顺序
- public static void shuffle(List<?> list) //随机重置集合元素的顺序
- public static void
- sort(List<T> list> //升序排序(元素类型必须实现Comparable接口)
package com.java.leetcode.collection; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.List; /* Collection工具类的使用 */ public class CColletion { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(20); list.add(13); list.add(1); list.add(64); list.add(0); //sort排序 System.out.println("排序之前:"+list); Collections.sort(list); //默认升序 System.out.println("排序之后:"+list); //binarySearch 二分查找 int i = Collections.binarySearch(list,20); System.out.println("二分查找20:"+i); //copy List<Integer> dest = new ArrayList<>(); for(int k=0;k<list.size();k++){ dest.add(0);//先添加0 } Collections.copy(dest,list);//这里需要两者大小一样。所以需要在copy之前为dest指定大小。如果不指定大小,会报java.lang.IndexOutOfBoundsException。 Collections.sort(dest, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2.compareTo(o1); //自定义比较规则。此处写的降序 } }); System.out.println("自定义比较器排序之后:"+dest); //reverse反转 Collections.reverse(list); System.out.println("list反转之后:"+list); //shuffle 打乱 Collections.shuffle(list); System.out.println("打乱之后:"+list); //list转数组 Integer[] arr = list.toArray(new Integer[0]); System.out.println("list转数组之后:"+ Arrays.toString(arr)); //数组转list。转后的list是一个受限集合,不能添加删除 String[] names = {"张三","李四","王二","秋萍"}; List<String> list1 = Arrays.asList(names); //list1.add("哈哈");//此行会报UnsupportedOperationException System.out.println("数组转list之后:"+list1); Integer[] nums = {1,50,136,0,23}; List<Integer> arr1 = Arrays.asList(nums); System.out.println("Integer数组转集合"+Arrays.toString(nums)); int[] num = {1,5,158,0,13}; List<int []> arr2 = Arrays.asList(num);//但是这样的话,集合里的元素就不是单个数字,而是一个数组.所以不要用int,用Integer System.out.println("int数组转集合"+Arrays.toString(num)); //将基本类型数组转成集合时,需要修改为包装类型 } }
运行结果:
集合总结:
- 集合的概念:对象的容器,定义了对多个对象进行操作的常用方法
- List集合:有序,有下标,元素可以重复。(ArrayList,LinkedList,Vector)
- Set集合:无序,无下标,元素不可重复。(HashSet,TreeSet)
- Map集合:存储一对数据。无序,无下标,键不可重复,值可以重复。(HashMap,HashTable,TreeMap)
- Collections:集合工具类,定义除了存取以外的集合常用方法。