Java提供了一个操作Set List Map 的工具类Collections .
  里面有大量方法对集合元素进行排序,查询修改等操作。
  还能把集合设为不可变。
  对集合对象实现线程同步控制。

同步控制
在hashtable那提过,虽然他是线程安全的,但是他性能比较差,所以Collections.synchronizedXxx(new Xxx()) ,例子Collections.synchronizedCollection(new ArrayList())就能转为线程安全的。HashSet TreeSet ArrayList ArrayDeque LinkedLisr HashMap TreeMap都是线程不安全的。

排序操作:

以下常用的类方法可对List集合元素进行排序:

void reverse(List list) 反转List集合元素进行排序

void shuffle(List list) 按自然顺序对List排序,升序

void sort(List list)对List进行排序

void sort(List list,Comparator c)根据指定的Comparator 产生的顺序对List进行排序

 void swap(List list ,int i,int j)把list集合从i到j位置的集合元素交换,

void rotate(List list,int distance) 当distance为正数时,把List集合后distance个元素整体移到前面。如果是负数,则吧前distance个元素整体移到后面。不改变集合的长度
 
查找,替换操作
  static int binarySearch(List list,Object key) 二分搜索法来搜索指定对象在list索引。(只有有序状态List集合才能用二分查询
  static Object max(Collection coll) 根据元素的自然顺序,返回集合的最大元素
  static Object max(Comparator c,Collection coll) 根据指定Comparator 的给出的顺序,返回集合的最大元素
  static Object min(Collection coll) 根据元素的自然顺序,返回集合的最小元素
  static Object min(Comparator c,Collection coll) 根据指定Comparator 的给出的顺序,返回集合的最小元素

   static int frequency(Collection coll,Object key) 返回指定集合中指定对象的数量

   static void fill(Collection coll,Object obj) 用指定对象obj替换指定List集合中的所有元素

 static int indexOfSubList(List source,List target)返回指定子List对象在母List对象中出现的第一次出现位置索引。如果没有就返回-1
 static int LastIndexOfSubList(List source,List target)返回指定子List对象在母List对象中出现的最后一次出现位置索引。如果没有就返回-1

 static boolean replaceAll(List list,Object newVal,Object oldVal)用一个新值替换List集合里的旧值

设置不可变集合

emptyXxx()返回一个空的不可变的集合对象

singletonXxx()返回只包含指定对象的(只有一个或一项的)不可变的集合对象

unmodifiableXxx()返回指定集合对象的不可变的视图

下面举例子说明

.....待续

Collections工具类详解的更多相关文章

  1. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  2. Android开发 Html工具类详解

    前言 在一些需求富文本显示或者编辑的开发情况下,数据都是用html的格式来保存文本信息的.而google是有提供解析html的工具类那就是Html.有了Html可以让TextView也支持富文本(其实 ...

  3. 并发包下常见的同步工具类详解(CountDownLatch,CyclicBarrier,Semaphore)

    目录 1. 前言 2. 闭锁CountDownLatch 2.1 CountDownLatch功能简介 2.2 使用CountDownLatch 2.3 CountDownLatch原理浅析 3.循环 ...

  4. StringUtils工具类详解

    StringUtils判断字符串大概有四种方法: 下面是 StringUtils 判断是否为空的示例: 判断是否为空,但是要注意,空格不算空,这个最好能不用则不用. StringUtils.isEmp ...

  5. 常用开发库 - MapStruct工具库详解

    常用开发库 - MapStruct工具库详解 MapStruct是一款非常实用Java工具,主要用于解决对象之间的拷贝问题,比如PO/DTO/VO/QueryParam之间的转换问题.区别于BeanU ...

  6. QAction类详解:

    先贴一段描述:Qt文档原文: Detailed Description The QAction class provides an abstract user interface action tha ...

  7. IE8“开发人员工具”使用详解上(各级菜单详解)

    来源: http://www.cnblogs.com/JustinYoung/archive/2009/03/24/kaifarenyuangongju.html IE8“开发人员工具”使用详解上(各 ...

  8. 自动化运维工具——ansile详解

    自动化运维工具——ansible详解(一) 目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ...

  9. [NewLife.XCode]实体类详解

    NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...

  10. PowerShell攻防进阶篇:nishang工具用法详解

    PowerShell攻防进阶篇:nishang工具用法详解 导语:nishang,PowerShell下并肩Empire,Powersploit的神器. 开始之前,先放出个下载地址! 下载地址:htt ...

随机推荐

  1. AOP流程及原理

    目录 一.AOP结构介绍 @Pointcut 通知 原理 连接点 拦截器 二.Bean介入点 EnableAspectJAutoProxy AspectJAutoProxyRegistrar Anno ...

  2. DeepSeekV3:写代码很强了

    以前,我是不信AI能最先替代程序员的. DeepSeek的热度虽然在降,但是能力在悄摸的迭代. 在今年2月中旬测试DeepSeekR1的时候,虽然被它的文本处理能力惊艳到,但是当时吐槽过几句它的编程水 ...

  3. mysql、PikaDB的使用方法和优化策略

    Mysql 字段选择 尽量选用INT,BIGINT,4字节8字节的消耗小于varchar.字符串选择VARCHAR增加拓展性. 时间应使用时间戳BIGINT存储,不使用DATETIME. 不使用BLO ...

  4. eolinker响应预处理:接口延时执行下一步的方法

    后置代码内加入如下代码: function sleep(milliSeconds){ var startTime = new Date().getTime(); // get the current ...

  5. JavaScript 单线程原理与异步编程机制

    JavaScript 单线程原理与异步编程机制 为什么 JavaScript 是单线程? JavaScript 被设计成单线程,简单来说就是 -- 浏览器里干活儿只能一个接一个排着队来,没法同时多开窗 ...

  6. 2025西安交大集训Day11:排列组合,扩展欧几里得,素数筛,欧拉函数,容斥原理逆元,BSGS,莫比乌斯反演,LUCAS定理

    快速幂 快速幂是我们解决中数论问题的基石让我们能以 \(O(logn)\) 的复杂度计算 \(a^n\) 快速幂的思想简单而言就是将 \(n\) 的二进制中所有的 \(1\) 代表的次幂乘起来比如计算 ...

  7. Result、ConfigAwait、ValueTask

    Result.ConfigAwait.ValueTask 参照: C# Async/Await: ConfigAwait, ValueTask是个啥?对提高性能有用么?_哔哩哔哩_bilibili 理 ...

  8. EFCore Study(四)——Select的应用及不走联表查外键字段的操作

    一.EFCore里Select的应用: 1)避免查询select *,可指定查询合适的字段 var comment = context.artitles.Select(c =>new { Id ...

  9. 时间工具之“js初始化当前时间数据”

    ⑨前端:初始化当前时间数据 方案一(峰哥认可) // 2023-02this.$moment().format('yyyy-MM'),​// 2023-02-02this.$moment().form ...

  10. MongoDB从入门到实战之Windows快速安装MongoDB

    前言 本章节的主要内容是在 Windows 系统下快速安装 MongoDB 并使用 Navicat 工具快速连接. MongoDB从入门到实战之MongoDB简介 MongoDB从入门到实战之Mong ...