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

Java核心API——Collection集合的工具类Collections

集合的排序

int类型的排序 

* 集合的排序
* java.util.Collections是集合的工具类,提供了很多static方法用于操作集合
* 其中提供了一个名为sort的方法,可以对List集合进行自然排序(从小到大)
        List<Integer> list = new ArrayList<>();Random random = new Random();for (int i = 0; i < 10; i++) {list.add(random.nextInt(100));}System.out.println(list);Collections.sort(list, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2 - o1;}});System.out.println(list);//集合的乱序Collections.shuffle(list);System.out.println(list);

自定义排序 

 

public class SortListDemo2 {public static void main(String[] args) {List<Point> list = new ArrayList<>();Random random = new Random();for (int i = 1; i < 10; i++) {list.add(new Point(random.nextInt(100), random.nextInt(100)));}System.out.println(list);/*sort方法在排序是要求集合元素必须实现:Comparable接口开发中我们定义的类不会去实现这个接口该排序功能对我们代码具有侵入性侵入性:当我们使用某给API功能时,其放过来要求我们为他实现接口或做某些继承并定义相关方法时,可以认定该API功能对我们代码有侵入性*///Collections.sort(list);//编译不通过Collections.sort(list, new Comparator<Point>() {@Overridepublic int compare(Point o1, Point o2) {int Olen1 = o1.getX() * o1.getX() + o1.getY() * o1.getY();int Olen2 = o2.getX() * o2.getX() + o2.getY() * o2.getY();return Olen1 - Olen2;}});System.out.println(list);}
}
//只用一次所以用匿名内部类
//class MyComparator implements Comparator{
//    @Override
//    public int compare(Object o1, Object o2) {
//        return 0;
//    }
//}

字符串排序 

    public static void main(String[] args) {List<String> list=new ArrayList<>();list.add("tom");list.add("durant");list.add("kobe");list.add("jam");list.add("mary");list.sort(new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return o1.length()-o2.length();}});System.out.println(list);Collections.sort(list);System.out.println(list);List<String> list1=new ArrayList<>();list1.add("你好啊");list1.add("哇你好( •̀ ω •́ )");list1.add("你好");Collections.sort(list1, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return o1.length()-o2.length();}});System.out.println(list1);}

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 解决Jasper Studio报表工具中预览正常显示,但部署到服务器上面无法正常显示的问题
  • linux neo4j 切换知识图谱
  • 粘包,Telnet,SSH,Wireshark
  • 基于Java和GeoTools的Shapefile矢量数据缩略图生成实践
  • STM32——GPS模块(GY-NEO-6M)
  • python使用ffmpeg将视频、音频合并合成(速度最快)
  • 最短路总结(dijkstra,floyd,bellman,spfa)
  • JavaWeb基础 -- Spring框架、IOC、AOP
  • Ubuntu 22.04中解决Could not load the Qt platform plugin “xcb“问题解决方法
  • 一条微博,让联想少卖16亿?
  • 软件测试用例的编写(六)
  • 嵌入式和单片机有什么区别?
  • 回归预测|基于灰狼GWO优化BP神经网络多输入多输出的数据回归预测Matlab程序GWO-BP 含预测新数据程序
  • RK3568开发笔记-buildroot系统scp拷贝文件报错dbclient no such file or directory
  • QT 目录
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • git 常用命令
  • HashMap ConcurrentHashMap
  • HTML中设置input等文本框为不可操作
  • JavaScript的使用你知道几种?(上)
  • mongo索引构建
  • Spring Cloud中负载均衡器概览
  • spring security oauth2 password授权模式
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • VuePress 静态网站生成
  • 大型网站性能监测、分析与优化常见问题QA
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 记一次和乔布斯合作最难忘的经历
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 两列自适应布局方案整理
  • 使用docker-compose进行多节点部署
  • 一个JAVA程序员成长之路分享
  • Mac 上flink的安装与启动
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ‌移动管家手机智能控制汽车系统
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #QT(串口助手-界面)
  • (2022 CVPR) Unbiased Teacher v2
  • (CPU/GPU)粒子继承贴图颜色发射
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)德国人的记事本
  • ***通过什么方式***网吧
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET BackgroundWorker
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .Net Winform开发笔记(一)
  • .NET 材料检测系统崩溃分析
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET分布式缓存Memcached从入门到实战
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .Net下的签名与混淆
  • .NET学习教程二——.net基础定义+VS常用设置