Collections基本用法

Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。
下面简单介绍几个用法:
初始化一个列表:

List<String> list = Lists.newArrayList("1", "5", "3", "2", "8", "7", "9", "4", "6", "0", "2");
1、sort (排序)
        Collections.sort(list);
        System.out.println("sort: " + list);

输出

sort: [0, 1, 2, 2, 3, 4, 5, 6, 7, 8, 9]

使用 sort 方法可以根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。此列表内的所有元素都必须是使用指定比较器可相互比较的

2、shuffle(混排)

混排算法所做的正好与 sort 相反: 它打乱在一个 List 中可能有的任何排列的踪迹。也就是说,基于随机源的输入重排该 List, 这样的排列具有相同的可能性(假设随机源是公正的)。这个算法在实现一个碰运气的游戏中是非常有用的。例如,它可被用来混排代表一副牌的 Card 对象的一个 List 。另外,在生成测试案例时,它也是十分有用的。

        Collections.shuffle(list);
        System.out.println("shuffle:" + list);

输出

shuffle:[1, 0, 8, 6, 3, 4, 7, 9, 5, 2, 2]
3、reverse(反转)

使用 reverse 方法可以将原来的集合按照倒排的方式排列

        Collections.reverse(list);
        System.out.println("reverse: " + list);

输出

reverse: [2, 2, 5, 9, 7, 4, 3, 6, 8, 0, 1]
4、min(返回最小)和 max(返回最大)

分别返回集合中的最小元素和最大元素。
collection 中的所有元素都必须是通过指定比较器可相互比较的。

        // 返回最小
        System.out.println("min: " + Collections.min(list));
        // 返回最大
        System.out.println("max: " + Collections.max(list));

输出

min: 0
max: 9
5、indexOfSubList(返回源列表中第一次出现指定目标列表的起始位置)
        List<String> subList = Arrays.asList("2");
        System.out.println("indexOfSubList: " + Collections.indexOfSubList(list, subList));

输出

indexOfSubList: 0
6、lastIndexOfSubList(返回源列表中最后一次出现指定目标列表的起始位置)
        List<String> subList = Arrays.asList("2");
        System.out.println("lastIndexOfSubList: " + Collections.lastIndexOfSubList(list, subList));

输出

lastIndexOfSubList: 1
7、rotate(循环移动指定列表中的元素)

如果是负数,则正向移动,正数则方向移动

        Collections.rotate(list, 2);
        System.out.println("rotate: " + list);

输出

rotate: [0, 1, 2, 2, 5, 9, 7, 4, 3, 6, 8]
8、fill(替换所有元素)

替换掉源列表中所有的元素为目标元素

        Collections.fill(list, "2222");
        System.out.println("fill: " + list);

输出

fill: [2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222]
9、copy(拷贝所有元素)

目标列表的长度要大于或等于源列表的长度

        List<String> list1 = new ArrayList<>(Collections.nCopies(list.size() + 1, null));
        Collections.copy(list1, list);
        System.out.println("copy: " + list1);

输出

copy: [2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, 2222, null]
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值