当前位置: 首页 > news >正文

常用工具类——Collections集合框架

常用工具类——Collections集合框架

Collections 是 JDK 提供的一个工具类,提供了一系列静态方法,分类来复习!

1.排序操作
  • reverse(List list) :反转顺序
  • shuffle(List list) : 洗牌,将顺序打乱
  • sort(List list) : 自然升序
  • sort(List list, Comparator c) :按照自定义的比较排序
  • swap(List list, int i, int j) :将 i 和 j 的位置元素交换
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class CollectionsTools {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("A");list.add("B");list.add("C");list.add("D");list.add("E");list.add("F");System.out.println("初始顺序:" + list);// 反转顺序Collections.reverse(list);System.out.println("反转后的顺序" + list);// 洗牌Collections.shuffle(list);System.out.println("洗牌后的顺序" + list);// 自然升序Collections.sort(list);System.out.println("自然升序后的顺序" + list);// 交换Collections.swap(list, 0, 1);System.out.println("交换后的顺序" + list);}
}

Result

初始顺序:[A, B, C, D, E, F]
反转后的顺序[F, E, D, C, B, A]
洗牌后的顺序[B, E, F, C, A, D]
自然升序后的顺序[A, B, C, D, E, F]
交换后的顺序[B, A, C, D, E, F]
2.查找操作
  • binarySearch(List list, Object key) :二分查找法,前提是排序
  • max(Collection coll):返回最大元素
  • max(Collection coll, Comparator comp):根据自定义比较器,返回最大元素
  • min(Collection coll):返回最小元素
  • min(Collection coll, Comparator comp):根据自定义比较器,返回最小元素
  • fill(List list, Object obj): 使用指定对象填充
  • frequency(Collection c, Object o): 返回指定对象出现的次数
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class CollectionsTools {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("A");list.add("A");list.add("C");list.add("D");list.add("E");list.add("F");list.add("F");list.add("F");System.out.println("初始顺序:" + list);// 二分查找Collections.sort(list);System.out.println(Collections.binarySearch(list, "C"));// 最大值System.out.println(Collections.max(list));// 最小值System.out.println(Collections.min(list));// 出现的次数System.out.println(Collections.frequency(list, "F"));// 填充Collections.fill(list, "Q");System.out.println("填充后的List"+ list);}
}

Result

初始顺序:[A, A, C, D, E, F, F, F]
2
F
A
3
填充后的List[Q, Q, Q, Q, Q, Q, Q, Q]
3.同步控制

HashMap是线程不安全,Collections工具类中提供了多个方法,这些方法会返回一个同步的对象,保证多线程中解决集合时的安全问题。

SynchronizedList synchronizedList = Collections.synchronizedList(list);
4.常用方法
  • addAll(Collection<? super T> c, T... elements):往集合中添加元素
  • disjoint(Collection<?> c1, Collection<?> c2) :判断两个集合是否没有交集
  • CollectionUtils.isEmpty(List list):集合空
  • CollectionUtils.isNotEmpty(List list):集合非空
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class CollectionsTools3 {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("A");list.add("B");list.add("C");list.add("D");List<String> addlist = new ArrayList<>();Collections.addAll(addlist, "A", "B", "C");System.out.println("添加后的集合" + addlist);System.out.println("是否没有交集:" + (Collections.disjoint(list, addlist) ? "是" : "否"));}
}
http://www.lryc.cn/news/533269.html

相关文章:

  • e2studio开发RA2E1(9)----定时器GPT配置输入捕获
  • 25/2/7 <机器人基础>雅可比矩阵计算 雅可比伪逆
  • 网络爬虫js逆向之异步栈跟栈案例
  • 使用Ollama本地部署deepseek
  • Rust错误处理:从灭火器到核按钮的生存指南
  • Golang:Go 1.23 版本新特性介绍
  • 电脑运行黑屏是什么原因?原因及解决方法
  • redis之AOF持久化过程
  • Elasticsearch:向量搜索的快速介绍
  • Docker在安装时遇到的问题(第一部分)
  • 使用 OpenGL ES 在 iOS 上渲染一个四边形:从基础到实现
  • Spring Boot 2 快速教程:WebFlux处理流程(五)
  • Vue 鼠标事件合集,关于鼠标右键的处理方法(改写鼠标右键方法、自定义鼠标右键)
  • 两种交换排序算法--冒泡,快速
  • 语音交友app系统源码功能及技术研发流程剖析
  • 零基础Vue入门7——状态管理Pinia
  • Bash (Bourne-Again Shell)、Zsh (Z Shell)
  • Android studio 创建aar包给Unity使用
  • DeepSeek R1 简单指南:架构、训练、本地部署和硬件要求
  • 图论常见算法
  • MySQL三大日志详解
  • 【SQL 中的分组查询与联合查询详解】
  • 【实战篇】用 Cursor 独立开发并上线电商类 Android APP 全攻略
  • quartus24.1版本子模块因时钟问题无法综合通过,FPGA过OOC问题复盘
  • 零基础Vue入门6——Vue router
  • 使用 Let‘s Encrypt 和 OpenResty 实现域名转发与 SSL 配置
  • Lambda 表达式
  • TCN时间卷积神经网络多变量多步光伏功率预测(Matlab)
  • 【Elasticsearch】 Composite Aggregation 详解
  • 如何通过 Logstash 将数据采集到 Elasticsearch