欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Collections基本方法使用

程序员文章站 2022-05-20 10:33:50
...

Collections基本方法使用

使用的方法包括:sort、二分查找、copy复制、reverse反转、shuffle打乱等,还有一些使用的注意事项都写在注释里了

/**
 * Collection常用方法介绍
 *
 * @author twb
 * @// TODO: 2021/3/28
 * @version 1.8
 */
public class Demo3 {
    public static void main(String[] args) {
        List<Integer> list =  new ArrayList<>();
        list.add(50);
        list.add(20);
        list.add(15);
        list.add(62);
        list.add(7);
        //sort排序
        System.out.println("排序之前:"+list.toString());
        Collections.sort(list);
        System.out.println("排序之后:"+list.toString());//默认从小到大排序,也可以根据自己的需求重写compare方法来进行排序
        
        //二分查找
        int index = Collections.binarySearch(list,20); //如果查找的元素不存在则返回负值,成功则返回该元素的下标
        System.out.println("二分查找结果:"+index);
        
        //copy复制
        List<Integer> dest = new ArrayList<>();//必须保证新的dest大小和list相等
        for (int i = 0; i < list.size(); i++) {
            dest.add(0);//以list大小为基准将dest元素初始值全部赋为0
    }
        Collections.copy(dest,list);
        System.out.println("复制之后的list:"+dest.toString());
        
        //reverse反转
        Collections.reverse(list);
        System.out.println("反转之后的list:"+list.toString());
       
        //shuffle打乱
        Collections.shuffle(list);
        System.out.println("打乱之后的list:"+list.toString());//每次运行的结果顺序都不一样

        //补充:
        //1.list转为数组
        Integer[] arr =  list.toArray(new Integer[0]);//需要给定大小,默认给0,如果大小超过list长度,则超过的部分为null
        System.out.println("list转为arr数组为:"+Arrays.toString(arr));

        //2.数组转为list
        String[] str = {"张三","李四","王五"};
        //集合是一个受限集合,不能 添加和删除元素
        List<String> listStr =  Arrays.asList(str);
        System.out.println("数组转为集合:"+listStr.toString());

        //如果是基本数据类型则需要转化为包装类
        Integer[] array = {100,200,300,400,500};
        List<Integer> listInt = Arrays.asList(array);
        System.out.println(Arrays.toString(array));
    }
}
排序之前:[50, 20, 15, 62, 7]
排序之后:[7, 15, 20, 50, 62]
二分查找结果:2
复制之后的list:[7, 15, 20, 50, 62]
反转之后的list:[62, 50, 20, 15, 7]
打乱之后的list:[7, 62, 50, 20, 15]
list转为arr数组为:[7, 62, 50, 20, 15]
数组转为集合:[张三, 李四, 王五]
[100, 200, 300, 400, 500]