Java中的Collections类[80]

2023-05-16

Java中的Collections类[80]


文章目录

  • Java中的Collections类[80]
  • 前言
  • 一、Collections基础使用
  • 二、查找与替换
  • 三.同步控制(线程安全)
  • 四.设置不可变集合
  • 五.其他方法
  • 六.小结


前言

本章将继续使用代码加注释方式来概述Collections的使用


一、Collections基础使用

Collections类:
Collections工具类提供了大量针对Collection/Map的操作,总体为四类,都是静态方法;

List<Integer> list=new ArrayList<>();
 list.add(1);
 list.add(2);
 list.add(3);
 list.add(4);
 //一.排序操作:
 //1.反转指定集合元素顺序
 Collections.reverse(list);
 //2.对指定集合元素顺序随机排序(洗牌)
 Collections.shuffle(list);
 //3.对集合中的元素按自然升序排序(从小到大),参数还可加入Comparator对象比较器进行排序
 Collections.sort(list);
 //4.将集合中指定元素进行交换
 Collections.swap(list,0,1);
 //5.将集合中所有元素右移指定长度,最后一个和第一个进行移动
 Collections.rotate(list,1);

二、查找与替换

//1.使用二分搜索法,获取指定元素的索引,前提是已经排序好;
int i1=Collections.binarySearch(list,2);
//2.返回该集合最大元素,参数后面还可以加对象比较器,进行最大元素判断返回
int i2=Collections.max(list);
//3.返回该集合最小元素,参数后面还可以加对象比较器,进行最小元素判断返回
int i3=Collections.min(list);
//4.将指定数据填充到指定集合中(集合所有数据都变成此数据)
Collections.fill(list,0);
//5.返回集合中该对象存在多少个
int i4=Collections.frequency(list,1);
//6.在指定集合中,根据老值,用新值替换
Collections.replaceAll(list,1,91);

三.同步控制(线程安全)

同步控制(线程安全):该方法提供了线程安全的集合;注意:再使用迭代方法遍历集合时需要手工同步返回集合;

//构建了一个线程安全的ArrayList对象;
List<String> sclist=Collections.synchronizedList(new ArrayList<>());
//创建了一个线程安全的HashMap对象
Map<Integer,String> map=Collections.synchronizedMap(new HashMap<>());

四.设置不可变集合

设置不可变集合:集合不能存放数据,可以用来返回空集合使用

//1.返回一个空的不可变的集合对象
List<Integer> ENlist=Collections.emptyList();
//2.返回一个只包含指定对象的,不可变集合;
List<Integer> ENlist2=Collections.singletonList(1);
//3.返回指定集合对象的不可变视图(数据内容)
List<Integer> ENlist3=Collections.unmodifiableList(ENlist2);

五.其他方法

//1.如果指定的两个Collection没有相同的元素,则返回true,否则false
boolean b=Collections.disjoint(list,ENlist2);
//2.将所有指定元素添加到集合中
Collections.addAll(list,5,6,7);
//3.返回一个比较器,强行反转该比较器的比较顺序,本来是从小到大,反转后从大到小;
Collections.reverseOrder(list,Comparator对象比较器);

六.小结

本章对Collections进行了演示和概述,通过代码的方式希望可以更有效率的来记住并上手使用;
有哪里不足或者有更好的建议,欢迎留言吐槽,有哪里不懂的小伙伴,可以私信我,我会一一答复,感谢认可,感谢支持!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中的Collections类[80] 的相关文章

  • 枚举的子类化

    有没有一种简单的方法来子类化Javaenum 我问这个问题是因为我有大约 10 个实现相同接口的对象 但它们对某些方法也有相同的实现 因此我想通过将所有相同的实现放置在扩展的中间对象中来重用代码Enum它也是我需要的所有其他类的超类 或许事
  • 在Windows Server 2003下如何在本地系统帐户下运行jvisualvm.exe?

    我在带有 Java 1 6 u 20 的 Windows Server 2003 下将 GlassFish 3 0 1 作为 Windows 服务运行 总体上我很满意 我希望能够在这个 JVM 上使用 VisualVM 并使用无法在 Tom
  • Kafka - 如何同时使用过滤器和过滤器?

    我有一个 Kafka 流 它从一个主题获取数据 并且需要将该信息过滤到两个不同的主题 KStream
  • 我们可以有条件地声明 spring bean 吗?

    有没有一种方法可以有条件地声明 Spring bean 例如
  • 有人用过 ServiceLoader 和 Guice 一起使用吗?

    我一直想通过我们的应用程序 构建系统进行更大规模的尝试 但更高的优先级不断将其推到次要地位 这似乎是加载 Guice 模块的好方法 并且避免了关于 硬编码配置 的常见抱怨 单个配置属性很少会自行更改 但您几乎总是会有一组配置文件 通常用于不
  • JAXB - 忽略元素

    有什么方法可以忽略 Jaxb 解析中的元素吗 我有一个很大的 XML 文件 如果我可以忽略其中一个大而复杂的元素 那么它的解析速度可能会快很多 如果它根本无法验证元素内容并解析文档的其余部分 即使该元素不正确 那就更好了 例如 这应该只生成
  • 为什么在将 String 与 null 进行比较时会出现 NullPointerException?

    我的代码在以下行中出现空指针异常 if stringVariable equals null 在此语句之前 我声明了 stringVariable 并将其设置为数据库字段 在这个声明中 我试图检测该字段是否有null值 但不幸的是它坏了 有
  • 无需递归即可对可观察结果进行分页 - RxJava

    我有一个非常标准的 API 分页问题 您可以通过一些简单的递归来处理 这是一个捏造的例子 public Observable
  • 在java程序中使用c++ Dll

    我正在尝试使用System LoadLibrary 使用我用 C 编写的一个简单的 dll UseDllInJava java import com sun jna Library import com sun jna Native imp
  • UseCompressedOops JVM 标志有什么作用以及何时应该使用它?

    HotSpot JVM 标志是什么 XX UseCompressedOops我应该做什么以及什么时候使用它 在 64 位 Java 实例上使用它 与不使用它 时 我会看到什么样的性能和内存使用差异 去年大多数 HotSpot JVM 都默认
  • Java 8 Stream,获取头部和尾部

    Java 8 引入了Stream http download java net jdk8 docs api java util stream Stream html类似于 Scala 的类Stream http www scala lang
  • 按降序排序映射java8 [重复]

    这个问题在这里已经有答案了 private static
  • Android计算两个日期之间的天数

    我编写了以下代码来查找两个日期之间的天数 startDateValue new Date startDate endDateValue new Date endDate long diff endDateValue getTime star
  • Spring Data Rest 多对多 POST

    首先 让我解释一下我的用例 这非常简单 有一个用户实体和一个服务实体 我使用 UserService 作为连接实体 连接表 在用户和服务之间建立多对多关联最初 会有一些用户集和一些服务集 用户可以在任何时间点订阅任何服务 在这种情况下 将向
  • Java 中清除嵌套 Map 的好方法

    public class MyCache AbstractMap
  • 带 getClassLoader 和不带 getClassLoader 的 getResourceAsStream 有什么区别?

    我想知道以下两者之间的区别 MyClass class getClassLoader getResourceAsStream path to my properties and MyClass class getResourceAsStre
  • 什么是 Java2D 处理程序线程?

    我创建了一个使用 Hibernate 的示例 java 应用程序 当我进行线程转储时 我观察到一个名为 Java2D Disposer 的奇怪线程 有人能告诉我该线程的功能吗 AWT 系统中的某些实体需要最终确定以释放资源 最突出的例子是j
  • 如何让 Firebase 与 Java 后端配合使用

    首先 如果这个问题过于抽象或不适合本网站 我想表示歉意 我真的不知道还能去哪里问 目前我已经在 iOS 和 Android 上开发了应用程序 他们将所有状态保存在 Firebase 中 因此所有内容都会立即保存到 Firebase 实时数据
  • 在会话即将到期之前调用方法

    我的网络应用程序有登录的用户 有一个超时 在会话过期之前 我想执行一个方法来清理一些锁 我已经实现了sessionListener但一旦我到达public void sessionDestroyed HttpSessionEvent eve
  • 设置 TreeSet 的大小

    有没有办法像数组一样对 Java 集合中的 TreeSet 进行大小限制 例如我们在数组中 anArray new int 10 数组具有固定长度 在创建数组时必须指定该长度 A TreeSet当您向其中添加元素时会自动增长 您无法设置其大

随机推荐

  • Git忽略提交规则 & .gitignore配置总结

    Git忽略提交规则 xff06 gitignore配置总结 在使用Git的过程中 xff0c 我们喜欢有的文件比如日志 xff0c 临时文件 xff0c 编译的中间文件等不要提交到代码仓库 xff0c 这时就要设置相应的忽略规则 xff0c
  • Spring之配置文件

    Spring简介 Spring是什么 Spring 自带 IoC xff08 Inverse of Control 控制反转 xff09 和 AOP Aspect Oriented Programming 面向切面编程 可以很方便地对数据库
  • Ubuntu开启SSH服务远程登录

    Ubuntu开启SSH服务远程登录 Ubuntu下开启ssh服务并能通过MobaXterm或者 Xshell进行远程登录 本人使用的是window10系统安装的MobaXterm window10系统安装MobaXterm可以参考 http
  • MongoDB

    一 MongoDB简介 1 集成简介 spring data mongodb提供了MongoTemplate与MongoRepository两种方式访问mongodb xff0c MongoRepository操作简单 xff0c Mong
  • 更改桌面壁纸_使用DeskSlide轻松更改桌面墙纸

    更改桌面壁纸 Looking to add some variety to your desktop instead of looking at the same wallpaper day in and day out Have fun
  • 科学素养题(2022年2月-2022年10月)

    二月科学素养 在我国山东省和山西省中间的 山 34 是 C A泰山 B吕梁山 C太行山 D沂蒙山 在一些寻宝游戏中 每个线索都会指向下一个线索的位置 玩家可以顺着这些线索一个一个找到所有的元素 这样的寻宝游戏的设计与 数据结构有着异曲同工之
  • Servlet综合练习:个人博客系统

    功能简介 1 注册新用户 2 xff09 登录已有用户 3 xff09 展示博客列表 xff08 包含文章标题以及作者信息 xff09 xff0c 点击标题就会跳转到文章详情页 4 xff09 文章详情页中 xff0c 显示文章标题 xff
  • Linux 环境搭建(如何获得一个免费云服务器)以及Linux基本指令

    搭建 Linux 环境 Linux 环境的搭建方式 主要有三种 直接安装在物理机上 但是由于 Linux 桌面使用起来非常不友好 不推荐 使用虚拟机软件 将 Linux 搭建在虚拟机上 但是由于当前的虚拟机软件 如 VMWare 之类的 存
  • 深入理解HTTP协议

    目标 xff1a 掌握 http 原理 xff0c 重点掌握 http Request amp Response 格式掌握 http 中相关重点知识 xff0c 如请求方法 xff0c 属性 xff0c 状态码等使用 java socket
  • 异常声音检测MFCC/HMM...相关

    有无研究这个方向的同学 xff0c 自己准备做这个方向 xff0c 可以相互讨论讨论 xff0c 留言我加你 xff0c 一起啊 x1f60f xff01
  • C语言goto语句简单使用

    简单介绍 C语言中提供了可以随意滥用的 goto语句和标记跳转的标号 从理论上 goto语句是没有必要的 xff0c 实践中没有goto语句也可以很容易的写出代码 但是某些场合下goto语句还是用得着的 xff0c 最常见的用法就是终止程序
  • 【网络原理】一个数据包从发送到接收在网络中经历了那些过程(详细分析)

    一个数据包从发送到接收在网络中经历了那些过程 假设学生给老师发送电子邮件 xff0c 内容为 xff1a 老师您好 xff01 从计算机A向另一台计算机B发送电子邮件 xff0c 站在网络原理的角度来分析整个过程 启动应用程序新建邮件 xf
  • 【贪心算法】leetcode402.移掉K位数字

    题目描述 xff08 传送门 xff09 给定一个以字符串表示的非负整数 num xff0c 移除这个数中的 k 位数字 xff0c 使得剩下的数字最小 注意 num 的长度小于 10002 且 k num 不会包含任何前导零 示例 1 输
  • 【Java项目实战】在线音乐播放器(从需求到产品完整解析)

    准备工作必看 xff1a Java项目实战 在线音乐播放器 xff08 前期准备 xff09 核心功能 登录 注册上传音乐删除某一个音乐信息删除选中的音乐信息查询音乐 包含查找指定 模糊匹配的音乐 添加音乐到 喜欢列表 查询喜欢的音乐 包含
  • MATLAB柱状图(数据可视化)

    示例 A 61 60 689 87 714 143 1 267 9515 C 61 127 5 160 4 231 9 400 2 B 61 C A D 61 A B C bar1 61 bar 2 5 17 A 39 BarWidth 3
  • ubuntu安装lxde_如何在Ubuntu上安装轻量级LXDE桌面

    ubuntu安装lxde LXDE is a lightweight desktop alternative to Unity GNOME and KDE It s ideal for old computers or anyone loo
  • 【leecode每日一题】636. 函数的独占时间

    题目描述 xff08 链接 xff09 有一个 单线程 CPU 正在运行一个含有 n 道函数的程序 每道函数都有一个位于 0 和 n 1 之间的唯一标识符 函数调用 存储在一个 调用栈 上 xff1a 当一个函数调用开始时 xff0c 它的
  • 【正则表达式】一、常见符号含义

    正则表达式入门 常见字符含义 常见字符含义 ABC 匹配目标字符串中 内的字符 span class token keyword import span re span class token keyword if span name sp
  • Java中文件相对路径和绝对路径的用法(IO同样适用),系统找不到指定文件的解决办法讲解

    引入场景 xff1a 在我们日常开发中 xff0c 经常需要去读取文件的内容 xff0c 但经常出现文件未发现的问题 xff0c 如下图 xff1a 出现这个问题的原因就有二个 xff0c 第一是文件真的不存在 xff0c 第二就是文件明明
  • Java中的Collections类[80]

    Java中的Collections类 80 文章目录 Java中的Collections类 80 前言一 Collections基础使用二 查找与替换三 同步控制 线程安全 四 设置不可变集合五 其他方法六 小结 前言 本章将继续使用代码加