Java Collections工具类

Collections 类:Java 中提供的一组静态方法,用于操作集合。常用方法:

1. 排序
  • Collections.sort(List<T> list)
    • 对指定列表进行升序排序。
  • Arrays.asList 将一个数组转化为一个List集合
java 复制代码
List<Integer> numbers = Arrays.asList(5, 2, 8, 1);
Collections.sort(numbers);
2. 查找
  • Collections.binarySearch(List<? extends Comparable<? super T>> list, T key)

    • 在已排序的列表中查找指定元素,返回其索引。
    java 复制代码
    int index = Collections.binarySearch(numbers, 2);  // 返回 1
3. 反转和洗牌
  • Collections.reverse(List<?> list)

    • 反转列表中的元素顺序。
    java 复制代码
    Collections.reverse(numbers);
  • Collections.shuffle(List<?> list)

    • 随机打乱列表中的元素顺序。
    java 复制代码
    Collections.shuffle(numbers);
4. 最大值和最小值
  • Collections.max(Collection<? extends T> coll)

    • 返回集合中的最大元素。
    java 复制代码
    int max = Collections.max(numbers);
  • Collections.min(Collection<? extends T> coll)

    • 返回集合中的最小元素。
    java 复制代码
    int min = Collections.min(numbers);
5. 频率
  • Collections.frequency(Collection<?> c, Object o)

    • 计算指定元素在集合中出现的次数。
    java 复制代码
    int freq = Collections.frequency(numbers, 2);
6. 替换
  • Collections.replaceAll(List<T> list, T oldVal, T newVal)

    • 替换列表中所有的旧值为新值。
    java 复制代码
    Collections.replaceAll(numbers, 2, 20);
7. 创建不可变集合
  • Collections.unmodifiableList(List<? extends T> list)

    • 返回指定列表的不可变视图。
    java 复制代码
    List<Integer> immutableList = Collections.unmodifiableList(numbers);
8. 单例集合
  • Collections.singleton(T o)

    • 返回一个包含单个指定元素的不可变集合。
    java 复制代码
    Set<Integer> singletonSet = Collections.singleton(1);
9. 空集合
  • Collections.emptyList()

    • 返回一个空的不可变列表。
    java 复制代码
    List<String> emptyList = Collections.emptyList();
10. 同步集合
  • Collections.synchronizedList(List<T> list)

    • 返回线程安全的列表。
    java 复制代码
    List<Integer> synchronizedList = Collections.synchronizedList(new ArrayList<>());
示例:
java 复制代码
package ServletProjects;  
  
import java.util.*;  
  
public class Main {  
    public static void main(String[] args) {  
        List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 2, 8, 1, 2));  
  
        Collections.sort(numbers);  
        System.out.println("排序后" + numbers);  
  
        Collections.shuffle(numbers);  
        System.out.println("打乱后 " + numbers);  
  
        int max = Collections.max(numbers);  
        int min = Collections.min(numbers);  
        System.out.println("最大值 " + max + ",最小值: " + min);  
  
        int freq = Collections.frequency(numbers, 2);  
        System.out.println("2的次序为: " + freq);  
  
        Collections.replaceAll(numbers, 2, 20);  
        System.out.println("替换后: " + numbers);  
    }  
}
相关推荐
小羽网安15 小时前
从零开始学习 sql 注入,常见的 sql 注入解析
数据库·sql·学习
半瓶榴莲奶^_^16 小时前
jvm java虚拟机
java·jvm
2401_8463395616 小时前
CSS如何优化大型项目样式_使用SASS预处理器提升开发效率
jvm·数据库·python
Gofarlic_oms120 小时前
利用API实现ANSYS许可证管理自动化集成
运维·服务器·开发语言·matlab·自动化·负载均衡
想成为优秀工程师的爸爸21 小时前
第十九篇技术笔记:UDP——相思传得快,飞鸽传书在
笔记·网络协议·tcp/ip·udp·信息与通信
AI+程序员在路上21 小时前
VS Code 完全使用指南:下载、安装、核心功能与 内置AI 编程助手实战
开发语言·人工智能·windows·开源
invicinble21 小时前
这里对java的知识体系做一个全域的介绍
java·开发语言·python
catchadmin21 小时前
使用 PHP TrueAsync 改造 Laravel 协程异步化的可行路径
开发语言·php·laravel
wbs_scy1 天前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·开发语言
stm32 菜鸟1 天前
nucleo-f411re学习记录-12,Wifi模块ESP8684
学习