Java 进阶之旅的第四天

Java 进阶之旅的第四天

Collections集合工具类

Collections集合工具类作用/特点

  • 可以对创建的集合进行操作,比如批量添加等
  • 查看源码可得,该工具类的构造函数用private修饰(private Collections() {}),所以使用时不需要创建该类.直接调用即可

Collections常用的API

方法名称说明
public static boolean addAll(Collection c,T… elements)批量添加元素
pubilc static void shuffle(List<?> list)打乱List集合元素的顺序
void sort(List list)排序
void sort(List list,Comparator c)指定规则排序
int binarySearch(List list,T key)以二分查找法查找元素
void copy(List dest,List src)拷贝集合中的元素
int fill(List list,T obj)使用指定的元素填充集合
int max/min(Collection coll)根据默认的自然排序获取最大/小值
void swap(List<?> list,int i,int j)交换集合中指定位置元素
  • 代码展示
//创建集合
        ArrayList<Integer> array = new ArrayList<>();
        //集合工具类
        //批量添加
        Collections.addAll(array,1,2,3,4,5,6,7);
        System.out.println("批量添加");
        System.out.println(array);
        //打乱集合元素顺序
        Collections.shuffle(array);
        System.out.println("打乱集合元素顺序");
        System.out.println(array);
        //排序
        Collections.sort(array);
        System.out.println("排序");
        System.out.println(array);
        //指定规则排序
        Collections.sort(array, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });
        System.out.println("指定规则排序");
        System.out.println(array);
        //二分查找元素
        int index = Collections.binarySearch(array, 1);
        System.out.println("二分查找元素");
        System.out.printf("元素1的下标: %d\n",index);
        System.out.println("二分查找元素1时下标为-1的结果是受到集合逆序的影响");
        //拷贝(暂时无法解决
//        ArrayList<Integer> array2 = new ArrayList<>();
//        Collections.copy(array2,array);
//        System.out.println("拷贝");
//        System.out.println(array2);
        //
        //根据默认的自然排序获取最大/小值
        int max = Collections.max(array);
        System.out.println("根据默认的自然排序获取最大");
        System.out.printf("最大值: %d\n",max);
        //交换集合中指定位置元素
        Collections.swap(array,0,2);
        System.out.println("交换集合中指定位置元素");
        System.out.println(array);
        //使用指定元素填充结合
        Collections.fill(array,5);
        System.out.println("使用指定元素填充结合");
        System.out.println(array);
  • 结果
批量添加
[1, 2, 3, 4, 5, 6, 7]
打乱集合元素顺序
[4, 1, 6, 3, 5, 2, 7]
排序
[1, 2, 3, 4, 5, 6, 7]
指定规则排序
[7, 6, 5, 4, 3, 2, 1]
二分查找元素
元素1的下标: -1
二分查找元素1时下标为-1的结果是受到集合逆序的影响
根据默认的自然排序获取最大
最大值: 7
交换集合中指定位置元素
[5, 6, 7, 4, 3, 2, 1]
使用指定元素填充结合
[5, 5, 5, 5, 5, 5, 5]
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不吃牛肉!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值