集合工具类Collections

概述

java.utils.Collections:是集合工具类

作用:Collections并不属于集合,是用来操作集合的工具类。

Collections常用的API 

Collections排序相关API

 使用范围:只能对于List集合的排序。

排序方式1:

 注意:本方式不可以直接对自定义类型的List集合排序,除非自定义类型实现了比较规则Comparable接口。

排序方式2:

public class CollectionsDemo01 {public static void main(String[] args) {List<String> names = new ArrayList<>();//names.add("楚留香");//names.add("胡铁花");//names.add("张无忌");//names.add("陆小凤");Collections.addAll(names, "楚留香","胡铁花", "张无忌","陆小凤");System.out.println(names);// 2、public static void shuffle(List<?> list) :打乱集合顺序。Collections.shuffle(names);System.out.println(names);// 3、 public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。 (排值特性的元素)List<Integer> list = new ArrayList<>();Collections.addAll(list, 12, 23, 2, 4);System.out.println(list);Collections.sort(list);System.out.println(list);}
}

 

public class CollectionsDemo02 {public static void main(String[] args) {List<Apple> apples = new ArrayList<>(); // 可以重复!apples.add(new Apple("红富士", "红色", 9.9, 500));apples.add(new Apple("青苹果", "绿色", 15.9, 300));apples.add(new Apple("绿苹果", "青色", 29.9, 400));apples.add(new Apple("黄苹果", "黄色", 9.8, 500));//        Collections.sort(apples); // 方法一:可以的,Apple类已经重写了比较规则
//        System.out.println(apples);// 方式二:sort方法自带比较器对象
//        Collections.sort(apples, new Comparator<Apple>() {
//            @Override
//            public int compare(Apple o1, Apple o2) {
//                return Double.compare(o1.getPrice() , o2.getPrice()); // 按照价格排序!!
//            }
//        });Collections.sort(apples, ( o1,  o2) ->  Double.compare(o1.getPrice() , o2.getPrice()) );System.out.println(apples);}
}
public class Apple implements Comparable<Apple>{private String name;private String color;private double price;private int weight;public Apple() {}public Apple(String name, String color, double price, int weight) {this.name = name;this.color = color;this.price = price;this.weight = weight;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public int getWeight() {return weight;}public void setWeight(int weight) {this.weight = weight;}@Overridepublic String toString() {return "Apple{" +"name='" + name + '\'' +", color='" + color + '\'' +", price=" + price +", weight=" + weight +'}';}/**方式一:类自定义比较规则o1.compareTo(o2)* @param o* @return*/@Overridepublic int compareTo(Apple o) {// 按照重量进行比较的return this.weight - o.weight ; // List集存储相同大小的元素 会保留!}
}

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

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

相关文章

SecureCRT for Mac/win强大安全的终端SSH工具,SecureCRT助您网络连接无忧

在当今数字化时代&#xff0c;网络连接已成为生活和工作中不可或缺的一部分。而对于需要进行远程访问和管理的用户来说&#xff0c;一个稳定、安全的终端SSH工具是至关重要的。SecureCRT作为一款强大的终端SSH工具&#xff0c;为用户提供了安全、高效的远程连接解决方案。 首先…

Linux 文本处理

在处理大文本时&#xff0c;使用VI打开会非常慢&#xff0c;通常只需要查看其中的少量信息&#xff0c;比如查看前多少行、或者文件尾多少行。这种情况下可以使用head和tail命令&#xff0c;这种方式查看起来会非常快。 查看文件1.txt 前1000行&#xff1a; head -n 1000 1.t…

【兔子王赠书第13期】AI绘画实战:Midjourney从新手到高手

文章目录 写在前面AI绘画推荐图书一本书读懂AI绘画关键点内容简介作者简介 推荐理由粉丝福利写在后面 写在前面 如今AI技术已经进入了我们的日常学习生活中&#xff0c;如何用一本书轻松玩转AI绘画&#xff0c;领略无限艺术可能呢&#xff1f; AI绘画 AI绘画是指利用人工智能…

紫光FPGA学习之常见报错

紫光pango design suite报错&#xff1a; 一、4005: [D:/**/rtl/burstORsingle.v(line number: 47)] Logic for ddr_head_addr_rr does not match a standard flip-flop. 看来看去都没有发现这个定义没有问题呀&#xff0c;检查发现&#xff1a; 原来代码&#xff1a; always…

会议剪影 | 思腾合力受邀出席首届CCF数字医学学术年会

首届CCF数字医学学术年会&#xff08;CCF Digital Medicine Symposium&#xff0c;DMS&#xff09;于2023年12月15日-17日在苏州CCF业务总部召开。这次会议的成功召开&#xff0c;标志着数字医学领域进入了一个新的时代&#xff0c;计算机技术和人工智能在医学领域的应用和发展…

Wireshark高级网络安全分析

第一章&#xff1a;Wireshark基础及捕获技巧 1.1 Wireshark基础知识回顾 1.2 高级捕获技巧&#xff1a;过滤器和捕获选项 1.3 Wireshark与其他抓包工具的比较 第二章&#xff1a;网络协议分析 2.1 网络协议分析&#xff1a;TCP、UDP、ICMP等 2.2 高级协议分析&#xff1a;HTTP…

【Docker离线安装与注册服务】

Docker离线安装与注册服务 一、离线安装1. Docker2. Docker-compose3. docker卸载4. 注册docker服务 ​ 一、离线安装 1. Docker Docker 官网离线安装文档&#xff1a;Install Docker Engine from binaries 整理步骤如下&#xff1a; 1.去官网下载 docker 安装包&#xff0c;…

Appcelerator打包ipa有哪些优势

大家好&#xff0c;我是咕噜-凯撒&#xff0c;我们得先知道Appcelerator是啥&#xff0c;Appcelerator&#xff08;现在更名为Axway Titanium&#xff09;是一个跨平台的移动应用开发框架通过提供一种简化和加速移动应用开发的方式帮助你构建高质量的跨平台应用程序。那使用App…

复旦团队提出思维交流框架EoT,由CoT到EoT,可跨模型通信,表现更出色

大型语言模型&#xff08;LLM&#xff09;通过利用庞大的训练语料和强大的计算资源&#xff0c;在众多 NLP 任务中表现卓越。然而&#xff0c;在理解和进行推理方面&#xff0c;这些模型仍显得相对薄弱&#xff0c;仅依靠增加模型的大小无法解决这一问题。 然而&#xff0c;现…

如何使用 TailwindCSS 画一条0.5px的线条

背景 在移动端项目&#xff0c;一般为了让线条看起来更细、更锐利&#xff0c;此时使用0.5px的线条是非常合适的。那么如何使用TailwindCSS画一条0.5px的线条呢&#xff1f; 在实现这个需求的时候&#xff0c;首先去TailwindCSS官网查了一下border有没有对应的内置工具类&…

LeetCode 141. 环形链表

给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;…

人工智能在约会APP开发中的作用

约会APP已成为当今技术世界中结识人们的流行方式。这意味着您不必要求您的朋友去见某人约会。简而言之&#xff0c;技术改善了约会过程&#xff0c;而人工智能在约会APP开发中的兴起极大地影响了人们今天的约会方式。 在约会APP中使用人工智能技术可以改善个人寻找完美匹配对象…

Arcgis中利用模型构建器统一栅格数据的行列号

1、统一&#xff08;X,Y) 方法&#xff1a;"数据管理工具箱"→"Projections and Transformations"→"Raster"→"Project Raster" 构建模型 这里以行列号最小的栅格&#xff08;X,Y&#xff09;为准&#xff08;其实也就是栅格数据的空…

掌握Pytest魔法:一站式指南 to自动化测试框架的威力与实践

在之前的文章里我们已经学习了Python自带测试框架UnitTest&#xff0c;但是UnitTest具有一定的局限性 这篇文章里我们来学习第三方框架Pytest&#xff0c;它在保留了UnitTest框架语法的基础上有着更多的优化处理 下面我们将从以下角度来介绍Pytest&#xff1a; Pytest基本介绍…

将 OpenLDAP 与 IBM Spectrum LSF 集成

IBM Spectrum LSF 是一个工作负载管理平台&#xff0c;提供强大的资源管理功能来优化应用程序性能和最大限度提高资源使用率。 OpenLDAP 是轻量级目录访问协议 (LDAP) 的开放式源代码实现&#xff0c;提供集中式认证和目录服务。 通过遵循本教程中概述的步骤&#xff0c;您可以…

很受益的几条道理

来源&#xff1a;你最近悟出了什么道理&#xff1f; - 知乎 1、 持续禁欲。 放弃短期内能够让你上瘾的东西&#xff0c;比如打游戏、熬夜、刷剧&#xff0c;这些“奶头乐”只能够给你带来短期的快乐&#xff0c;并不能够让你成长&#xff0c;甚至会带来痛苦和无聊。而那些长期…

Unity与Android交互通信系列(2)

在上一篇文章中&#xff0c;我们介绍了Unity和Android交互通信的原理及在Unity中直接调用Java代码的方式&#xff0c;但没有给出代码示例&#xff0c;下面通过实际例子演示上篇文章中AndroidJavaClass、AndroidJavaObject两个类的基本用法&#xff0c;由于交互通信涉及到两端&a…

net6使用StackExchangeRedis实现分布式缓存

上一篇讲解了Redis的搭建及ServiceStack.Redis 与 StackExchange.Reids 的区别https://blog.csdn.net/qq_39569480/article/details/105249607 这篇文章遗我们来说下使用Microsoft.Extensions.Caching.StackExchangeRedis来对redis进行操作及帮助类。 首先在windows上安装red…

【Java JVM】运行时数据区

JVM 在执行 Java 程序的过程中会把它管理的内存分为若干个不同的数据区域, 这些区域有着各自的用途。 根据《Java虚拟机规范》中规定, JVM 所管理的内存大致包括以下几个运行时数据区域, 如图所示: 这个运行时数据区被分为了 5 大块 方法区 (Method Area)堆 (Heap)虚拟机栈 (V…

day42代码训练|动态规划part04

本文参考&#xff1a;代码随想录代码随想录 动态规划&#xff1a;01背包理论基础 01背包问题&#xff1a;有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物…