Java Collections工具类

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

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

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

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

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

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

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

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

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

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

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

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

    • 返回线程安全的列表。
    List<Integer> synchronizedList = Collections.synchronizedList(new ArrayList<>());
    
示例:
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);  }  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/2675.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MCU+RTOS调试

1. 引言在做项目时&#xff0c;百分之三十的时间写代码&#xff0c;还有百分之70的时间用于调试。本期将以Keil为例进行调试章节的讲解&#xff0c;目的在于做出一个标准化的调试步骤&#xff0c;方便大家学习如何调试代码。内容分为基础调试、中级调试及进阶调试三部分&#x…

基于STM32F103的FM1702驱动程序

基于STM32F103微控制器与复旦微电子FM1702SL射频读卡芯片的驱动开发方案&#xff0c;整合了硬件配置、寄存器操作和通信协议实现&#xff1a;一、硬件连接设计 1. 管脚映射表FM1702SL引脚STM32F103引脚功能说明VDD3.3V电源输入GNDGND地线SCKPA5(SPI1_SCK)SPI时钟MISOPA6(SPI1_M…

Zabbix 6.0 监控AWS全栈实战|EC2至Lambda的无缝监控

一、云监控架构挑战与突破传统云监控痛点&#xff1a; ❌ 多区域/多账户资源分散难统一 ❌ 无服务器环境监控盲区&#xff08;Lambda/API Gateway&#xff09; ❌ 云账单爆炸式增长Zabbix-AWS解决方案&#xff1a;三层监控体系&#xff1a;基础设施层&#xff1a;EC2/EBS/VPC&a…

深入Go并发编程:Channel、Goroutine与Select的协同艺术

在现代软件开发中&#xff0c;并发编程已成为提升程序性能和响应能力的关键。Go语言作为一门为并发而生的现代编程语言&#xff0c;其简洁而强大的并发模型&#xff0c;特别是goroutine和channel&#xff0c;为开发者提供了优雅的并发解决方案。本文将深入探讨Go并发编程的核心…

nvim编辑器

安装lazy.nvim -- 在 ~/.config/nvim/init.lua 中添加以下代码 -- 设置 leader 键&#xff08;推荐空格&#xff09; vim.g.mapleader " "-- 加载 lazy.nvim local lazypath vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_…

Android启动时间优化大全

1 修改Android mksh默认的列长度 不修改这个参数&#xff0c;adb shell后&#xff0c;输入超过80个字符&#xff0c;就不能看到完整的命令行。external/mksh/src/sh.h EXTERN mksh_ari_t x_cols E_INIT(80); EXTERN mksh_ari_t x_lins E_INIT(24);2 Kernel优化 2.1 内核驱动模块…

JavaScript核心概念全解析

目录 1. 作用域 (1) 局部作用域 (2) 全局作用域 2. 垃圾回收 (1) 引用计数法 (2) 标记清除法 3. 闭包 (1) 作用 (2) 风险 4. 变量提升 (1) var (2) let 和 const (3) const 5. 函数提升 (1) 函数声明 (2) 函数表达式 6. 函数参数 (1) 动态参数 (2) 剩余参数…

Red靶机攻略

一.环境准备 1.1Red靶机环境准备 1.1.1首先将我们解压好的的jangow-01-1.0.1.ova放入虚拟机里&#xff0c;并配置环境。安装好靶机后打开进行配置&#xff0c;按住shift&#xff0c;在界面按e进去得到图二。 1.1.2按住ctrlx&#xff0c;ip a查看网卡信息,修改网络配置文件 /e…

Linux之shell脚本篇(三)

一、 for循环使用基础语法for var in 数据域&#xff08;表达式&#xff09; do 语句1 done 代码案例1.循环3次hello world &#xff0c;打印循环池内容#!/bin/bash for i in www.jd.com www.qq.com www.4399.com do echo $i hello world.done 2.ping 网段范围内地址(1)打印网段…

9-大语言模型—Transformer 核心:多头注意力的 10 步拆解与可视化理解

目录 1、Transformer编码器堆叠的每层结构 2、输入嵌入 3、位置编码 4、多头注意力层 4.1、步骤1&#xff1a;表示输入 4.1.1、输入 4.1.2、示意图 ​编辑 4.2、步骤2&#xff1a;初始化权重矩阵 4.2.1、初始化Query权重矩阵&#xff1a; 4.2.2、初始化Key权重矩阵…

Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现标签条码一维码的检测(C#代码,UI界面版)

Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现标签条码一维码的检测&#xff08;C#代码&#xff0c;UI界面版&#xff09;&#xff09;工业相机使用YoloV8模型实现标签条码一维码的检测工业相机通过YoloV8模型实现标签条码的检测的技术背景在相机SDK中获取图像转换…

Python编程:初入Python魔法世界

一、常量表达式在编程中&#xff0c;常量指的是在程序执行期间其值不会改变的数据项。虽然 Python 并没有专门的语法来定义常量&#xff08;不像某些其他语言如 Java 中有 final 关键字&#xff09;&#xff0c;但在实践中&#xff0c;我们通常通过约定俗成的方式来表示一个变量…