Collections集合工具类-JAVA

news2024/12/24 8:57:52
  • java.util.Collections:是个集合工具类
  • 它不是集合,而是集合的工具类

常用 API:
image.png
注意 binarySearch 方法要求元素有序

方法实现:

public class Test01 {
    public static void main(String[] args) {


ArrayList<String>list1=new ArrayList<>();

//1.给单列集合添加元素
Collections.addAll(list1,"sdadsa","ads","b","adc","cds");
System.out.println("添加元素后: "+list1);

//2只能打乱list集合
Collections.shuffle(list1);
System.out.println("打乱元素后: "+list1);

//3.给list集合排序--按照字母大小(自然)
Collections.sort(list1);
System.out.println("自然排序后: "+list1);

//4.给list集合排序--(比较器)----
//String中默认是按照字母的abcdefg顺序进行排列的
//现在要求,按照长度排序,长度一样就按照字母大小排序
Collections.sort(list1, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
    int i = o1.length() - o2.length();
    if (i!=0){
        return i;
    }else {
        return o1.compareTo(o2);//调用自然排序即按字母大小排序
    }
}
});
System.out.println("指定方式排序: "+list1);


//5.二分法查找元素--前提是元素有序
ArrayList<String>list2=new ArrayList<>();
Collections.addAll(list2,"a","b","c","d");
int index = Collections.binarySearch(list2,"b" );//1
System.out.println("b的索引是:"+index);

//拷贝集合:如果list2长度>list1会报错
Collections.copy(list1,list2);//list2拷贝给list1
System.out.println("拷贝后的list1:"+list1);


//fill指定元素填充
Collections.fill(list2,"a");
System.out.println("元素填充后的list2:"+list2);

//获取最大值--按照自然排序的原则,即字母大小
String max = Collections.max(list1);
System.out.println("list1的最大字符串"+max);
//获取最小值--按照自然排序的原则,即字母大小
String min = Collections.min(list1);
System.out.println("list1的最小字符串"+min);


//交换指定索引的集合元素
Collections.swap(list1,0,4);// a<-->sdadsa
System.out.println(list1);

    }
}

控制台:
添加元素后: [sdadsa, ads, b, adc, cds]
打乱元素后: [sdadsa, cds, b, adc, ads]
自然排序后: [adc, ads, b, cds, sdadsa]
指定方式排序: [b, adc, ads, cds, sdadsa]
b的索引是:1
拷贝后的list1:[a, b, c, d, sdadsa]
元素填充后的list2:[a, a, a, a]
list1的最大字符串:sdadsa
list1的最小字符串:a
交换后:[sdadsa, b, c, d, a]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

双非本科准备秋招(12.2)—— 力扣栈与队列

复习一下栈和队列的基础知识&#xff0c;刷几道题上上手。 1、102. 二叉树的层序遍历 广度优先遍历嘛&#xff0c;每次拓展一个新结点&#xff0c;就把新结点加入队列&#xff0c;这样遍历完队列中的元素&#xff0c;顺序就是层序遍历。 class Solution {public List<Lis…

输电线路图像监视系统研发背景及应用

输电线路建设在野外&#xff0c;在自然环境下&#xff0c;恶劣天气、地质灾害以及人为因素破坏会给线路运行带来巨大挑战&#xff0c;特别是偏远山区、林区、“三跨”等巡线困难区域。传统人工巡视存在局限性&#xff0c;巡视范围有限&#xff0c;线路运维人员压力倍增。 不过近…

[职场] 面试主播试镜要做些什么 #经验分享#笔记

面试主播试镜要做些什么 1.准备独立的空间做直播室&#xff0c;入镜的地方要干净整洁&#xff0c;不能堆太多杂物。可以装扮的温馨一点&#xff0c;也可以根据节日等装扮房间&#xff0c;比如最近圣诞节&#xff0c;放一些圣诞节的装饰物。 2.调试好话筒、灯光等直播设备&#…

JVM篇----第二十篇

系列文章目录 文章目录 系列文章目录前言一、垃圾收集算法二、调优命令有哪些?三、Minor GC与Full GC分别在什么时候发生?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的…

LeetCode:206反转链表

206. 反转链表 - 力扣&#xff08;LeetCode&#xff09; 不难&#xff0c;小细节是单写一个循环&#xff0c;把特殊情况包含进去&#xff0c; 单链表核心&#xff1a;上一个结点&#xff0c;当前结点&#xff0c;下一个结点&#xff0c; 代码&#xff1a;注释&#xff08;算是…

YOLOv5独家改进:上采样算子 | 超轻量高效动态上采样DySample,效果秒杀CAFFE,助力小目标检测

💡💡💡本文独家改进:一种超轻量高效动态上采样DySample, 具有更少的参数、FLOPs,效果秒杀CAFFE和YOLOv5网络中的nn.Upsample 💡💡💡在多个数据集下验证能够涨点,尤其在小目标检测领域涨点显著。 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/cate…

路由重定向和别名

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介1. 路由重定向实例场景&#xff1a;路由重定向的应用场景&#xff1a; 2. 路由别名实例场景&#xff1a;路由别名的应用场景&#xff1a; ⭐ 写在最后 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏&…

韶音、南卡、Oladance值不值得买?全面对比测评拒绝智商税!

​在目前市场上&#xff0c;有许多质量不佳、音质差的开放式耳机产品。这些产品不仅会影响音频的质量&#xff0c;还可能对用户的听力健康造成潜在风险。作为一名经验丰富的音频设备评测师&#xff0c;我深知在选择耳机时&#xff0c;必须谨慎选择那些具有专业实力的品牌。基于…

基于EdgeWorkers的边缘应用如何进行单元测试?

随着各行各业数字化转型的持续深入&#xff0c;越来越多企业开始选择将一些应用程序放在距离最终用户更近的边缘位置来运行&#xff0c;借此降低延迟&#xff0c;提高应用程序响应速度&#xff0c;打造更出色的用户体验。 相比传统集中部署和运行的方式&#xff0c;这种边缘应…

字段使用函数是否会走索引

之前的印象中&#xff0c;字段上使用了函数操作&#xff0c;查询不会走索引。 一&#xff0c;AI回答 回答1 回答2 回答3 二&#xff0c;测试样例 查询未来n天内所有数据 查询方式1 EXPLAIN SELECT * FROM vehicle_info WHERE annual_inspection_due_date BE…

Vulnhub靶机:hackme2-DHCP

一、介绍 运行环境&#xff1a;Virtualbox(攻击机)和VMware(靶机) 攻击机&#xff1a;kali&#xff08;192.168.56.106&#xff09; 靶机&#xff1a;hackme2-DHCP&#xff08;192.168.56.107&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1…

重写Sylar基于协程的服务器(2、配置模块的设计)

重写Sylar基于协程的服务器&#xff08;2、配置模块的设计&#xff09; 重写Sylar基于协程的服务器系列&#xff1a; 重写Sylar基于协程的服务器&#xff08;0、搭建开发环境以及项目框架 || 下载编译简化版Sylar&#xff09; 重写Sylar基于协程的服务器&#xff08;1、日志模…

厨师帽佩戴识别摄像机​

厨师帽佩戴识别摄像机是一种用于识别厨师是否佩戴帽子的智能设备&#xff0c;其作用在于强制执行食品安全卫生标准&#xff0c;防止头发掉落入食物中。该摄像机利用人工智能和图像识别技术&#xff0c;能够识别厨师是否佩戴厨师帽。当摄像机检测到厨师未佩戴帽子时&#xff0c;…

DNS服务实战:使用自定义域名访问Redis服务

前言 在这篇文章中,你将了解到如何在 CentOS 系统上安装 Redis 服务,并且掌握通过自定义域名来访问 Redis 服务的技巧。通过使用自定义域名,你可以方便地管理和访问你的 Redis 数据库,提高工作效率。无论你是开发者、系统管理员还是对 Redis 感兴趣的读者,这篇文章都会为…

Android 跳转应用设置/热点界面或等常用操作

Android 跳转应用设置/热点界面或等常用操作 https://www.jianshu.com/p/ba7164126690 android学习进阶——Setting https://blog.csdn.net/csdn_wanziooo/article/details/81980984 Android 7.1 以太网反射 EthernetManager 配置 DHCP、静态 IP https://codeleading.com/art…

UG949 适用于 FPGA 和 SoC 的UltraFast 设计方法指南

使用RTL创建设计 定义RTL设计层级 模块边界输出进行寄存 即寄存器输出&#xff0c;打一拍 IP的使用 AMBA AXI

C语言指针学习(1)

前言 指针是C语言中一个重要概念&#xff0c;也是C语言的一个重要特色&#xff0c;正确而灵活地运用指针可以使程序简洁、紧凑、高效。每一个学习和使用C语言的人都应当深入的学习和掌握指针&#xff0c;也可以说不掌握指针就没有掌握C语言的精华。 一、什么是指针 想弄清楚什…

springboot+AOP+RBAC自定义权限访问控制03

springbootAOPRBAC自定义权限访问控制03&#xff01;今天我们做完了整个权限管理的内容。 内容比较多。请大家有足够的耐心看完。 首先。我们为了测试权限的鉴别效果&#xff0c;我们提前准备了一个新闻实体类&#xff0c;对应数据库的tb_news数据表。 我们提前准备好了新闻…

【Android 字节码插桩】Gradle插件基础 Transform API的使用

前言 啪~我给大家开个会&#xff08;手机扔桌子上&#xff09; 什么叫做 客户无感的数据脱敏&#xff01;&#xff1f; 师爷给翻译翻译什么叫做客户无感的数据脱敏&#xff1f; 什么特么的叫做客户无感数据脱敏&#xff1f; 举个栗子~ 客户端Sdk新升级了一个版本&#xff0c;增…

150基于matlab的凸轮轮廓的设计计算与绘图计算此结构的最优化参数

基于matlab的凸轮轮廓的设计计算与绘图计算此结构的最优化参数&#xff0c;根据其原理输出推程和回程的最大压力角、最小曲率半径等相关结果。程序已调通&#xff0c;可直接运行。 150 凸轮轮廓的设计 结构的最优化参数 (xiaohongshu.com)