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. L1-8、Prompt提升提问质量的实用技巧(Tips)

    掌握提问的艺术,让你的 AI 更聪明.更贴心. 为什么你的提问得不到好答案? ChatGPT 等大模型的表现很大程度上取决于你的提问方式.提得好,AI 像专家:提不好,AI 像糊涂蛋. 常见低质量提问 ...

  2. Intellij IDEA 设置JDK版本

    问题描述: 项目JDK版本不对 如果项目JDK版本不兼容,在编译或者启动项目的时候抛出如下异常提示信息: Error:(29, 34) java: -source 1.7 中不支持 lambda 表达 ...

  3. IDEA 调试Java代码的两个技巧

      本文介绍两个使用IDEA 调试Java代码的两个技巧: 修改变量值 使用RuntimeException终止代码执行 修改变量值   在Java代码调试过程中,我们可以修改变量值,使其达到走指定分 ...

  4. 浅析区块链BaaS平台定位

    一.概述 区块链是一种聚合了分布式存储.密码学.链式结构.p2p通讯,使得链上数据具有防篡改.可追溯等特点的一种信任技术. 继数字藏品热潮之后,2023年以来,区块链的发展进入了Gartner成熟度曲 ...

  5. Python操作LDAP,对用户进行认证(验证用户名以及密码)

    Python操作LDAP,对用户进行认证 1.环境 Python版本: 3.7.1 操作系统:windows 7 x64 第三方包:python-ldap 2.LDAP LDAP,它是基于X.500标 ...

  6. 如何从Docker image提取 Dockerfile

    参考链接:https://github.com/cucker0/dockerimage2df 参考链接:https://github.com/cucker0/docker/blob/main/md/由 ...

  7. wso2~api生命周期与关联事件

    api生命周期 CREATED 建立 PRE-RELEASED 预发布 PUBLISHED 发布 DEPRECATED 删除 BLOCKED 冻结 RETIRED 退役 状态为Published的ap ...

  8. Vue <img :src=""/> 图片不显示

    场景 图片路径被原样输出,无法正确加载图片: <img :src="imgSrc"/> 原因 webpack 会将:src 动态绑定的值解析成字符串,原样输出: 解决办 ...

  9. 用Java获取本机IP或者请求用户的真正IP地址

    一.在Web请求中获取请求用户的IP地址 public static String getUserRealIP(HttpServletRequest request) throws UnknownHo ...

  10. 数据开发提效有秘诀!离线开发BatchWorks 六大典型场景拆解

    回顾大数据的发展历程,一句话概括就是海量数据的高效处理.在当今快节奏.不断变化的市场环境下,优秀的开发效率已经成为企业数字化转型的必备条件. 数栈离线开发BatchWorks 是一款专注离线数据ELT ...