程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • Vue3 + TS
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • JavaAPI速查

    • Java基础API
    • String类常用API
    • StringBuilder常用API
    • Arrays数组 工具类
    • Collections 工具类
      • 1. 排序操作
        • 1.1. 反转顺序:reverse(List)
        • 1.2. 随机排序:shuffle(List)
        • 1.3. 自然排序:sort(List)
        • 1.4. 自定义排序:sort(List)
        • 1.5. 交换元素:swap(List, int, int)
      • 2. 查找与替换操作
        • 2.1. 查找最大元素:max(Collection)
        • 2.2. 自定义最大元素:max(Collection)
        • 2.3. 查找最小元素:min(Collection)
        • 2.4. 自定义最小元素:min(Collection)
        • 2.5 统计元素频次:frequency(Collection, Object)
        • 2.6 复制内容:copy(List src)
        • 2.7 替换元素:replaceAll(List, T oldVal, T newVal)
    • Java 集合常用API
    • Collection 接口集合的遍历方式
    • Map 接口集合的遍历方式
    • Queue 和 Stack 的常用遍历方式
    • 数组的常用遍历方式
    • 字符串的常用遍历方式
    • 文件或目录的常用遍历方式
    • 比较器的常用使用方式
    • 常用日期和时间API
  • JavaAPI速查
  • JavaAPI速查
scholar
2024-08-24
目录

Collections 工具类

# Collections 工具类

Collections 是一个操作 Set、List 和 Map 等集合的工具类,它提供了一系列静态方法用于对集合元素进行排序、查询、替换等操作。

# 1. 排序操作

# 1.1. 反转顺序:reverse(List<?>)

该方法用于将 List 中的元素顺序进行反转。

示例代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ReverseExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Jack");
        list.add("Tom");
        list.add("Smith");
        list.add("Rose");

        // 反转 List 集合中的元素顺序
        Collections.reverse(list);
        System.out.println("反转后的顺序:" + list); // 输出:[Rose, Smith, Tom, Jack]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 1.2. 随机排序:shuffle(List<?>)

该方法用于对 List 集合中的元素进行随机排序,每次执行的结果可能不同。

示例代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ShuffleExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Jack");
        list.add("Tom");
        list.add("Smith");
        list.add("Rose");

        // 对 List 集合进行随机排序
        Collections.shuffle(list);
        System.out.println("随机排序后:" + list); // 输出结果每次运行可能不同
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 1.3. 自然排序:sort(List<?>)

该方法根据元素的自然顺序(通常是字母顺序或数字顺序)对 List 集合进行排序。

示例代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class NaturalSortExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Jack");
        list.add("Tom");
        list.add("Smith");
        list.add("Rose");

        // 根据自然顺序对 List 集合进行升序排序
        Collections.sort(list);
        System.out.println("自然顺序排序后:" + list); // 输出:[Jack, Rose, Smith, Tom]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 1.4. 自定义排序:sort(List<?>, Comparator<?>)

该方法允许根据自定义规则(Comparator)对 List 进行排序。

示例代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class CustomSortExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Jack");
        list.add("Tom");
        list.add("Smith");
        list.add("Rose");

        // 根据字符串长度对 List 集合元素进行排序
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length() - o2.length(); // 按字符串长度升序排序
            }
        });
        System.out.println("按长度排序后:" + list); // 输出:[Tom, Jack, Rose, Smith]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 1.5. 交换元素:swap(List<?>, int, int)

该方法用于交换 List 中指定位置的两个元素。

示例代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class SwapExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Jack");
        list.add("Tom");
        list.add("Smith");
        list.add("Rose");

        // 交换 List 中索引为 1 和 2 的元素
        Collections.swap(list, 1, 2);
        System.out.println("交换后的顺序:" + list); // 输出:[Jack, Smith, Tom, Rose]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 2. 查找与替换操作

# 2.1. 查找最大元素:max(Collection<?>)

该方法根据元素的自然顺序返回集合中的最大值。

示例代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class MaxElementExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Jack");
        list.add("Tom");
        list.add("Smith");
        list.add("Rose");

        // 查找集合中的最大元素(自然顺序)
        String maxElement = Collections.max(list);
        System.out.println("自然顺序最大元素:" + maxElement); // 输出:Tom
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 2.2. 自定义最大元素:max(Collection<?>, Comparator<?>)

该方法允许根据自定义 Comparator 规则查找集合中的最大元素。

示例代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class MaxWithComparatorExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Jack");
        list.add("Tom");
        list.add("Smith");
        list.add("Rose");

        // 根据字符串长度查找集合中的最大元素
        String maxLengthElement = Collections.max(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length() - o2.length(); // 按字符串长度比较
            }
        });
        System.out.println("长度最大的元素:" + maxLengthElement); // 输出:Smith
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 2.3. 查找最小元素:min(Collection<?>)

该方法与 max(Collection<?>) 类似,但用于查找最小元素。

# 2.4. 自定义最小元素:min(Collection<?>, Comparator<?>)

与 max(Collection<?>, Comparator<?>) 类似,用于查找最小元素。

# 2.5 统计元素频次:frequency(Collection<?>, Object)

该方法返回集合中指定元素的出现次数。

示例代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class FrequencyExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Jack");
        list.add("Tom");
        list.add("Smith");
        list.add("Rose");
        list.add("Tom");

        // 查找集合中 "Tom" 出现的次数
        int frequency = Collections.frequency(list, "Tom");
        System.out.println("Tom 出现次数:" + frequency); // 输出:2
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 2.6 复制内容:copy(List<? super T> dest, List<? extends T> src)

该方法用于将源集合的内容复制到目标集合中,目标集合的大小必须与源集合一致。

示例代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CopyExample {
    public static void main(String[] args) {
        List<String> src = new ArrayList<>();
        src.add("Jack");
        src.add("Tom");
        src.add("Smith");
        src.add("Rose");

        // 创建一个与 src 大小相同的目标集合
        List<String> dest = new ArrayList<>(Collections.nCopies(src.size(), null));

        // 将 src 中的内容复制到 dest 中
        Collections.copy(dest, src);
        System.out.println("复制后的列表:" + dest); // 输出:[Jack, Tom, Smith, Rose]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 2.7 替换元素:replaceAll(List<T>, T oldVal, T newVal)

该方法用于将 List 中所有指定的旧值替换为新值。

示例代码:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ReplaceAllExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Jack");
        list.add("Tom");
        list.add("Smith");
        list.add("Rose");
        list.add("Tom");

        // 使用新值 "Thomas" 替换所有 "Tom"
        Collections.replaceAll(list, "Tom", "Thomas");
        System.out.println("替换后的列表:" + list); // 输出:[Jack, Thomas, Smith, Rose, Thomas]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

结论

Collections 工具类提供了丰富的静态方法,用于对集合进行排序、查找、替换等操作。通过灵活使用这些方法,可以方便地处理 Java 中的各种集合数据。

编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
Arrays数组 工具类
Java 集合常用API

← Arrays数组 工具类 Java 集合常用API→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式