当前位置: 首页 > news >正文

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}
}
http://www.lryc.cn/news/432673.html

相关文章:

  • fastreport打印trichedit分页问题的解决
  • 【MeterSphere】vnc连接不上selenium-chrome容器
  • mysql explain分析
  • [论文笔记]Circle Loss: A Unified Perspective of Pair Similarity Optimization
  • Windows .NET8 实现 远程一键部署,几秒完成发布,提高效率 - CICD
  • echarts 水平柱图 科技风
  • 标准IO与系统IO
  • 【conda】Conda 环境迁移指南:如何更改 envs_dirs 和 pkgs_dirs 以及跨盘迁移
  • 脏页写入磁盘的过程详解
  • 数据结构——单链表实现和注释浅解
  • 滑动窗口系列(同向双指针)/9.7
  • C# 窗体中Control以及Invalidate,Update,Refresh三种重绘方法的区别
  • 缓存类型以及读写策略
  • 自动驾驶---Motion Planning之轨迹拼接
  • 没资料的屏幕怎么点亮?思路分享
  • 通信工程学习:什么是FEC前向纠错
  • 【机器人工具箱Robotics Toolbox开发笔记(二十)】机器人工具箱SerialLink I类函数参数说明
  • 单调栈的实现
  • ffmpeg的安装和使用教程
  • 从计组中从重温C中浮点数表示及C程序翻译过程
  • MySQL常用函数(总结)详细版
  • 学习记录——day41 C++ 类的静态成员 static
  • JVM - Java内存区域
  • 本地电脑交叉编译ffmpeg 到 windows on arm64
  • 使用 @NotEmpty、@NotBlank、@NotNull 注解进行参数校验
  • 关于Qt在子线程中使用通讯时发生无法接收数据的情况
  • HTML:从历史演进到未来创新的网页基石
  • 向量的叉积、点积、外积
  • UNI-APP 溢出隐藏显示省略号
  • SAP学习笔记 - 开发03 - CDSView开发环境搭建,Eclipse中连接SAP,CDSView创建