Java 集合工具类 Collections

java.util.Collections 是JDK提供的工具类,提供了一系列静态方法来简化集合的处理。

批量添加元素:addAll()

addAll() 方法支持一次性向任意 Collection 类型集合传入多个元素,相比集合自身的 add() 方法逐个添加,能大幅减少代码行数。例如:

List<String> animals = new ArrayList<>();
Collections.addAll(animals, "dog", "cat", "bird");

List排序与洗牌:sort()和shuffle()

排序

Collections.sort() 方法可对 List 集合进行自然排序,前提是集合中的元素实现了 Comparable 接口。例如:

List<Integer> nums = new ArrayList<>(Arrays.asList(5, 2, 8, 1));
Collections.sort(nums); // 排序后集合为 [1, 2, 5, 8]

如果需要自定义排序规则,还可以传入 Comparator 接口的实现类,灵活满足不同的排序需求。

随机打乱元素

shuffle() 方法能随机打乱 List 中元素的顺序。示例如下:

List<String> prizes = new ArrayList<>(Arrays.asList("一等奖", "二等奖", "三等奖"));
Collections.shuffle(prizes); // 每次调用后元素顺序随机变化

不可变集合的转换

Collections 提供了将可变集合封装成不可变集合的方法。常用方法包括:

  • unmodifiableList(List):将列表转换为不可变列表
  • unmodifiableSet(Set):将集合转换为不可变集合
  • unmodifiableMap(Map):将映射转换为不可变映射

使用示例:

List<String> mutableList = new ArrayList<>();
mutableList.add("book");
List<String> immutableList = Collections.unmodifiableList(mutableList);

需要注意的是,转换后的不可变集合仍依赖于原始可变集合。如果修改原始集合,不可变集合也会受到影响,因此建议转换后及时丢弃原始集合的引用

总结

Collections 工具类的核心价值在于简化集合操作:

  • 批量添加集合元素
  • List集合排序和洗牌
  • 转换为不可变集合

Java集合——15.使用Collections的更多相关文章

  1. Java集合框架GS Collections具体解释

    Java集合框架GS Collections具体解释 作者:chszs.未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs GS Collec ...

  2. Java集合操作类Collections的一些常用方法

    public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); ...

  3. Java:集合工具类-Collections

    Java.util.Collections 集合框架工具类Collections,其方法都是静态的,本身没有构造函数. 常见方法: static <T extends Comparable< ...

  4. java集合框架之Collections

    参考http://how2j.cn/k/collection/collection-collections/369.html Collections是一个类,容器的工具类,就如同Arrays是数组的工 ...

  5. JAVA集合操作异常 ---------Collections.unmodifiableCollection

    1.问题原因 这两天在做开发的时候,在一个首页的列表哪里操作了ArrayList集合,在做递归删除的时候用的是Iterator对象(至于为什么用,来个链接https://blog.csdn.net/m ...

  6. Java集合框架:Collections工具类

    java.util.Collections工具类提供非常多实用的方法.使得程序员操作集合类的时候更加的方便easy,这些方法都是静态的. 整个Collections工具类源代码几乎相同有4000行.我 ...

  7. 用Java集合中的Collections.sort方法对list排序的两种方法

    用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  8. Java集合(1):Collections工具类中的static方法

    与Arrays一样,Collections类中也有一些实用的static方法. (1) 排序操作 reverse(List list):反转指定List集合中元素的顺序 shuffle(List li ...

  9. Java 集合工具类---------- Collections类

  10. Java集合【6】-- Collection和Collections的区别

    刚开始学java的时候,分不清Collection和Collections,其实这两个东西是完全不一样的东西. Collection是一个接口,是java集合中的顶级接口之一,衍生出了java集合的庞 ...

随机推荐

  1. System.currentTimeMillis()与时区无关

    摘要:System.currentTimeMillis()获取的时间戳与时区无关. 综述   System.currentTimeMillis()经常被用来获取当前时间戳,单位是毫秒,可以用来计算当前 ...

  2. 如何用Leangoo破解需求隔离与频繁变更的协作困局?

    作为一位经历过"需求文档满天飞.系统各自为战"的研发负责人,我深知团队在需求频繁变更时面临的痛点--信息割裂导致响应滞后.优先级混乱引发返工.协作低效拖慢交付节奏. 近期,我深度测 ...

  3. 「Note」字符串方向 - 自动机相关

    1. AC 自动机 ACAM 1.1. 简介 AC 自动机用于解决多模式串匹配问题,例如求多个模式串在文本串中的出现次数.显著地,它的应用实际上非常广泛. 借助 KMP 的思想,我们对 Trie 树上 ...

  4. Python基础—初识函数(二)

    1.给函数参数增加元信息 写好一个函数,然后想为这个函数的参数增加一些额外的信息,这样的话其他使用者就能清楚的知道这个函数应该怎么使用. 使用函数参数注解是一个很好的办法,它能提示程序员应该怎样正确使 ...

  5. VKProxy已提供命令行工具,镜像和简单的ui

    VKProxy 是使用c#开发的基于 Kestrel 实现 L4/L7的代理 经过6个月业余时间偶尔缝缝补补,已经达到能跑的地步了 (感兴趣的同学烦请点个github小赞赞呢) 相关使用写了一些简单的 ...

  6. 大巧不工,袋鼠云正式开源大数据任务调度平台——Taier(太阿)!

    2022年2月22日,在今天这个特殊的日子里,历经多年持续迭代和千万周期实例并发调度考验的Taier(太阿)终于开源了! Github开源地址: https://github.com/DTStack/ ...

  7. Nginx 配置(Config)中遇到的错误(Error)

    原文:https://ichochy.com/posts/software/20231125.html nginx location 正则错误写法 location 错误的写法 匹配请求目录地址 /5 ...

  8. hot100之贪心

    买卖股票的最佳时期(121) class Solution { public int maxProfit(int[] prices) { int res = 0; int min = Integer. ...

  9. Google Cloud Function函数访问AWS的Redis服务(二)

    上一章介绍了使用VP嗯将Google Cloud和AWS的网络连通,这里介绍如何使用:使用Google Cloud Function 访问AWS的Redis服务. 一:Google Cloud 创建 ...

  10. RL Swarm:去中心化强化学习协作训练平台

    项目概述 RL Swarm 是由Gensyn团队维护的去中心化强化学习协作训练平台.该系统允许用户加入"蜂群"与其他参与者共同训练模型,利用集体智能提升训练效率.核心特点包括: 真 ...