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:集合工具类,定义除了存取以外的集合常用方法。

 

posted @ 2022-04-02 13:54  虞美人体重90  阅读(43)  评论(0编辑  收藏  举报