Collections
Collections 是 Java 中的一个实用工具类,提供了一系列静态方法来操作集合。以下是其详细介绍:
前置知识
在 Java 中,可变参数(Varargs)允许方法接受可变数量的参数。使用可变参数时,可以传递任意数量的参数给方法,包括不传递参数。
语法
使用省略号 ... 来定义可变参数:
方法可以接受不同数量的参数调用。
可变参数在方法内部被视为数组。
可变参数必须是方法的最后一个参数。
一个方法只能有一个可变参数。
public class test {public static void main(String[] args) {System.out.println(add(11, 1, 2, 3, 4, 5, 6));//21System.out.println(add(1));//0}public static int add (int age, int... num){int sum = 0;for (int i = 0; i < num.length; i++) {sum += num[i];}return sum;}
}
添加操作
addAll( Comparator<? super T> c,ele1,ele2...) 批量添加元素
排序操作
sort(List<T> list):对列表进行升序排序。
sort(List<T> list, Comparator<? super T> c):使用指定的比较器进行排序。
查找和最大最小值
binarySearch(List<? extends Comparable<? super T>> list, T key):在有序(升序)列表中进行二分查找。查找到返回下标,未查找到返回-1。
查找相同元素时,返回的索引可能是任何一个相同元素的索引
max(Collection<? extends T> coll):返回集合中的最大元素。
min(Collection<? extends T> coll):返回集合中的最小元素。
修改操作
reverse(List<?> list):反转列表中元素的顺序。
shuffle(List<?> list):随机打乱列表中的元素。
fill(List<? super T> list, T obj):用指定元素替换列表中的所有元素。
copy(List<? super T> dest, List<? extends T> src):将源列表中的所有元素复制到目标列表中。src复制到dest,且两列表大小相同。
swap(List<?> list, int i, int j):交换列表中两个指定位置的元素。
其他实用方法
frequency(Collection<?> c, Object o):返回元素在集合中出现的次数。
disjoint(Collection<?> c1, Collection<?> c2):判断两个集合是否没有交集。有交集返回false,无交集返回true
public class test {public static void main(String[] args) {List<Integer> c = new ArrayList<>();Collections.addAll(c, 12, 13, 24, 5, 3);System.out.println(c);//[12, 13, 24, 5, 3]Collections.sort(c, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1.compareTo(o2);}});System.out.println(c);//[3, 5, 12, 13, 24]System.out.println(Collections.binarySearch(c, 5));//1System.out.println(Collections.min(c));//3System.out.println(Collections.max(c));//24Collections.reverse(c);System.out.println(c);//[24, 13, 12, 5, 3]List<Integer> a = new ArrayList<>(Arrays.asList(0,0,0,0,0));Collections.copy(a, c);System.out.println(a);//[24, 13, 12, 5, 3]Collections.swap(c,0,4);System.out.println(c);//[3, 13, 12, 5, 24]System.out.println(Collections.frequency(c,5));//1System.out.println(Collections.frequency(c,0));//0System.out.println(Collections.disjoint(a, c));//falseCollections.shuffle(c);System.out.println(c);//Collections.fill(c,4);System.out.println(c);//[4, 4, 4, 4, 4]System.out.println(Collections.disjoint(a, c));//true}
}
相关文章:
Collections
Collections 是 Java 中的一个实用工具类,提供了一系列静态方法来操作集合。以下是其详细介绍: 前置知识 在 Java 中,可变参数(Varargs)允许方法接受可变数量的参数。使用可变参数时,可以传递任意数量的参…...
fastreport打印trichedit分页问题的解决
用fastreport来打印richedit里面的内容。刚开始放一个frxrichview组件到报表上,然后在 var str: TMemoryStream; begin begin str: TMemoryStream.Create; CurrRichRecord.richedit.Lines.SaveToStream(str); str.Position: 0; tfrxRichview(fr…...
【MeterSphere】vnc连接不上selenium-chrome容器
目录 一、现象 二、查看配置文件 docker-compose-seleniarm.yml 三、处理 3.1 删除上图当中的三行 3.2 msctl reload 3.3 重新连接 前言:使用vnc连不上ms的selenium-chrome容器,看不到里面运行情况,以前其实可以,后来不行…...
mysql explain分析
目录 思维导图 id select_type SIMPLE PRIMARY SUBQUERY DEPENDENT SUBQUREY UNCACHEABLE SUBQUREY: UNION UNION RESULT DERIVED MATERIALIZED table partitions type ALL index range ref eq_ref const system possible_keys keys key_l…...
[论文笔记]Circle Loss: A Unified Perspective of Pair Similarity Optimization
引言 为了理解CoSENT的loss,今天来读一下Circle Loss: A Unified Perspective of Pair Similarity Optimization。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 这篇论文从对深度特征学习的成对相似度优化角度出发,旨在最大化同类之间…...
Windows .NET8 实现 远程一键部署,几秒完成发布,提高效率 - CICD
1. 前言 场景 (工作环境 一键部署 到 远端服务器 [阿里云]) CICD 基本步骤回顾 https://blog.csdn.net/CsethCRM/article/details/141604638 2. 环境准备 服务器端IP:106.15.74.25(阿里云服务器) 客户端࿱…...
echarts 水平柱图 科技风
var category [{ name: "管控", value: 2500 }, { name: "集中式", value: 8000 }, { name: "纳管", value: 3000 }, { name: "纳管", value: 3000 }, { name: "纳管", value: 3000 } ]; // 类别 var total 10000; // 数据…...
标准IO与系统IO
概念区别 标准IO:(libc提供) fopen fread fwrite 系统IO:(linux系统提供) open read write 操作效率 因为内存与磁盘的执行效率不同 系统IO: 把数据从内存直接写到磁盘上 标准IOÿ…...
【conda】Conda 环境迁移指南:如何更改 envs_dirs 和 pkgs_dirs 以及跨盘迁移
目录 迁移概述一、conda 配置文件1.1 安装 Conda 后的默认目录设置1.2 查看当前 .condarc 配置 二、更改 Conda 的 envs_dirs 和 pkgs_dirs 设置2.1 使用 conda config 命令Windows 和 Linux 系统 2.2 手动编辑 .condarc 文件Windows 系统Linux 系统 2.3 验证设置 三、迁移 Con…...
脏页写入磁盘的过程详解
脏页写入磁盘的过程 一、引言 在数据库系统中,脏页是指那些被修改过但还未写入磁盘的数据页。为了保证数据的一致性和持久性,数据库系统需要在适当的时候将脏页写入磁盘。了解脏页写入磁盘的过程对于理解数据库的内部工作机制和优化性能至关重要。 二、触发脏页写入的条件…...
数据结构——单链表实现和注释浅解
关于单链表的基础部分增删查改的实现和一点理解,写在注释里~ SList.h #pragma once #include<stdio.h> #include<stdlib.h> #include<assert.h>//定义节点的结构 //数据 指向下一个节点的指针 typedef int SLTDataType;typedef struct SListNo…...
滑动窗口系列(同向双指针)/9.7
新的解题思路 一、三数之和的多种可能 给定一个整数数组 arr ,以及一个整数 target 作为目标值,返回满足 i < j < k 且 arr[i] arr[j] arr[k] target 的元组 i, j, k 的数量。 由于结果会非常大,请返回 109 7 的模。 输入&…...
C# 窗体中Control以及Invalidate,Update,Refresh三种重绘方法的区别
在 C# 中,Control 类是 Windows Forms 应用程序中所有控件的基类。它提供了控件的基本功能和属性,这些功能和属性被所有继承自 Control 类的子类所共享。这意味着 Control 类是构建 Windows Forms 应用程序中用户界面元素的基础。 以下是 Control 类的一…...
缓存类型以及读写策略
缓存(Cache)是一种高效的数据存储技术,旨在提高数据访问速度。 它将频繁访问或最近使用的数据临时存储在更快速但较小的存储介质(如内存)中,以减少从较慢的存储设备(如硬盘或远程服务器&#x…...
自动驾驶---Motion Planning之轨迹拼接
1 背景 笔者在之前的专栏中已经详细讲解了自动驾驶Planning模块的内容:包括行车的Behavior Planning和Motion Planning,以及低速记忆泊车的Planning。 本篇博客主要聊一聊Motion Planning中轨迹拼接的相关内容。从网络上各大品牌的车主拍摄的智驾视频来看…...
没资料的屏幕怎么点亮?思路分享
这次尝试调通一个没资料的屏幕,型号是HYT13264,这个是淘宝上面的老王2.9元屏,成色很好但是长期库存没有资料和代码能点亮,仅仅只有一个引脚定义。这里我使用Arduino Nano作为控制器尝试点亮这个模块。 首先,已知别人找…...
通信工程学习:什么是FEC前向纠错
FEC:前向纠错 FEC(Forward Error Correction,前向纠错)是一种增加数据通信可信度的技术,广泛应用于计算机网络、无线通信、卫星通信等多种数据传输场景中。其基本原理和特点可以归纳如下: 一、FEC前向纠错…...
【机器人工具箱Robotics Toolbox开发笔记(二十)】机器人工具箱SerialLink I类函数参数说明
机器人工具箱中的SerialLink表示串联机器人型机器人的具体类。该类使用D-H参数描述,每个关节一组。SerialLink I类包含的参数如表1所示。 表1 SerialLink I类参数 参 数 意 义 参 数 意 义 plot 显示机器人的图形表示 jacobn 工具坐标系中的雅可比矩阵 plot3D 显示机…...
单调栈的实现
这是C算法基础-数据结构专栏的第二十四篇文章,专栏详情请见此处。 引入 单调栈就是满足单调性的栈结构,它最经典的应用就是给定一个序列,找出每个数左边离它最近的比它大/小的数。 下面我们就来讲单调栈的实现。 定义 单调栈就是满足单调性…...
ffmpeg的安装和使用教程
在Linux上安装和使用FFmpeg可以方便地完成音视频的编码、解码、转码等操作。以下是详细的安装和使用教程。 安装FFmpeg FFmpeg的安装方法会因为不同的Linux发行版有所不同。下面是几种常见的安装方法: Ubuntu/Debian 打开终端,更新包列表并安装FFmpe…...
实战指南:Autofac 依赖注入在微服务架构中的高效应用
1. Autofac在微服务架构中的核心价值 微服务架构最大的挑战之一就是如何优雅地管理数百个服务的依赖关系。我经历过一个电商系统重构项目,当单体应用拆分成30多个微服务后,手工管理服务依赖就像在玩多米诺骨牌——改一个服务参数可能引发连锁反应。这时候…...
如何快速掌握notepad--:国产跨平台文本编辑器的完整指南
如何快速掌握notepad--:国产跨平台文本编辑器的完整指南 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-- 引…...
佳维视工业嵌入式显示器在全电脑络筒机中的应用
佳维视工业嵌入式显示器凭借其高可靠性、环境适应性和功能集成性,可在全电脑络筒机的纱线张力控制、清纱监测、自动化操作、数据集成及远程运维等核心环节发挥关键作用,有效提升设备运行的稳定性、纱线加工质量及生产效率。具体应用如下:一、…...
深度解析OpenSpeedy:3大核心技术原理与实战应用指南
深度解析OpenSpeedy:3大核心技术原理与实战应用指南 【免费下载链接】OpenSpeedy 🎮 An open-source game speed modifier. 项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy OpenSpeedy是一款高效的开源游戏加速工具,通过创新…...
如何让任何老旧手柄在PC游戏中完美工作:3步终极解决方案
如何让任何老旧手柄在PC游戏中完美工作:3步终极解决方案 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 还在为心爱的游戏手柄无法在PC上使用而烦…...
告别‘纸片人’:用AAAI 2025最新技术,打造你的高保真3D数字分身(ID-Sculpt/GraphAvatar实战)
从单张照片到高保真3D数字分身:ID-Sculpt与GraphAvatar技术实战指南 在虚拟社交、直播互动和元宇宙场景爆发的今天,一个能准确还原个人特征的3D数字分身正在从技术炫技变成刚需。传统3D建模需要专业设备和数小时扫描,而最新AAAI 2025会议亮相…...
5分钟掌握Fideo:终极免费直播录制软件使用指南
5分钟掌握Fideo:终极免费直播录制软件使用指南 【免费下载链接】fideo-live-record A convenient live broadcast recording software! Supports Tiktok, Youtube, Twitch, Bilibili, Bigo!(一款方便的直播录制软件! 支持tiktok, youtube, twitch, 抖音,…...
免费开源神器OpenMS:质谱数据分析的完整解决方案
免费开源神器OpenMS:质谱数据分析的完整解决方案 【免费下载链接】OpenMS The codebase of the OpenMS project 项目地址: https://gitcode.com/gh_mirrors/op/OpenMS 你是否正在寻找一款强大的开源工具来处理复杂的质谱数据?OpenMS正是你需要的质…...
Reloadium数据库回滚功能:SQLAlchemy和Django ORM的10个最佳实践指南
Reloadium数据库回滚功能:SQLAlchemy和Django ORM的10个最佳实践指南 【免费下载链接】reloadium Hot Reloading, Profiling and AI debugging for Python 项目地址: https://gitcode.com/gh_mirrors/re/reloadium Reloadium是一款强大的Python热重载工具&am…...
FixPlus-v1.56.148 一键擦除,会员功能直接解锁
核心功能 AI智能擦除技术可精准识别并移除照片中的干扰元素(如路人、杂物),自动填补背景,处理效果自然无痕。AI换衣功能支持智能服装替换与风格调整,为创意编辑提供更多可能。 操作便捷性 无需专业技巧,通…...
