58、JAVA Collections集合排序相关静态方法---方法1
一、Collection集合方法---排序方法1
public static <T extends Comparable<? super T>> void sort(List<T> list)
根据元素的自然顺序对指定列表按升序进行排序。
二、 注意:
1、对基本数据或者字符串默认使用的是升序排列。
2、如果需要对自定义类进行排序,需要实现comparable,重写接口中的方法compareTo,自己定义排序的规则, 根据返回值决定升序还是降序,自己(this)-参数:升序
3、可以在方法compareTo中设置多级条件排序,原理是利用前一次的条件相等就启用后一次条件
三、举例
Collections02Person.java
public class Collections02Person implements Comparable<Collections02Person>{String name;int age;/*自己构造排序方法,其实可以利用返回条件设置多级排序* */@Overridepublic int compareTo(Collections02Person c) {return this.getAge()-c.getAge();//比较年龄大小来作为排序//return 0;//返回0就认为相等}public Collections02Person() {}@Overridepublic String toString() {//Collections02Personreturn "{" +"name='" + name + '\'' +", age=" + age +'}';}public Collections02Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
Collections02.java
import java.util.ArrayList;
import java.util.Collections;public class Collections02 {public static void main(String[] args) {ArrayList<Integer> listI = new ArrayList<>();Collections.addAll(listI,1,3,2,4,5,3,1);System.out.println("整形排序前:");System.out.println(listI);System.out.println("整形排序后:");Collections.sort(listI);System.out.println(listI);ArrayList<String> listS = new ArrayList<>();Collections.addAll(listS,"abs","bas","aas","bbs");System.out.println("字符排序前");System.out.println(listS);System.out.println("字符排序后");Collections.sort(listS);System.out.println(listS);ArrayList<Collections02Person> cp = new ArrayList<>();Collections.addAll(cp,new Collections02Person("张珊",14),new Collections02Person("李思",12),new Collections02Person("王五",11),new Collections02Person("赵柳",15),new Collections02Person("林奇",15));System.out.println("自定义类排序前");System.out.println(cp);System.out.println("自定义排序后");Collections.sort(cp);System.out.println(cp);}}
输出:
整形排序前:
[1, 3, 2, 4, 5, 3, 1]
整形排序后:
[1, 1, 2, 3, 3, 4, 5]
字符排序前
[abs, bas, aas, bbs]
字符排序后
[aas, abs, bas, bbs]
自定义类排序前
[{name='张珊', age=14}, {name='李思', age=12}, {name='王五', age=11}, {name='赵柳', age=15}, {name='林奇', age=15}]
自定义排序后
[{name='王五', age=11}, {name='李思', age=12}, {name='张珊', age=14}, {name='赵柳', age=15}, {name='林奇', age=15}]
58、JAVA Collections集合排序相关静态方法---方法1相关推荐
- Java 8 集合排序的 10 个姿势
今天栈长就分享 Java 8 进行排序的 10 个姿势,原来还有这么多排序技巧,其实就是把 Java 8 中的 Lambda.Stream.方法引用等知识点串起来,栈长的同事直呼还看不懂.. 传统排序 ...
- java中集合排序的常用方法总结
前言 1.集合元素为数字 2.集合元素为对象 前言 平常的开发需求中肯定会遇到对集合排序问题,最常见的排序是在持久层中使用sql进行排序,但是由于业务限制或是其他原因,不能在持久层 ...
- Java中集合拥有的共性方法
在Java中集合的共性方法 1.在Java中集合作为最顶层的集合,他拥有所有集合有的共性方法.所以在定义实现类的时候可以使用多态. 集合拥有的共性方法: public boolean add(E e) ...
- Collections集合工具类的方法_sort(List,Comparator)
简述Comparable和Comparator两个接口的区别. Comparable:强行对实现它的每个类的对象进行整体排序.这种排序被称为类的自然排序,类的compareTo方法被称为它的自然比较方 ...
- Collections集合工具类的方法_sort(List)
Comparator比较器 我们还是先研究这个方法 public static <T> void sort(List<T> list):将集合中元素按照默认规则排序. 不过这次 ...
- Collections集合工具类的方法_addAllshuffle
Collections 常用功能 java.utils.Collections是集合工具类,用来对集合进行操作.部分方法如下: public static <T> boolean addA ...
- java map集合排序的_Java对Map集合进行排序
Java对Map集合进行排序 实现 Comparator 接口,重写compare方法,完成自定义排序 int compare(Object o1, Object o2) 返回一个基本类型的整型 如果 ...
- Collections集合工具类的方法
addAll & shuffle: 返回类型为boolean类型,执行完操作不接收也行: 其中,静态方法,与对象无关,类名点方法名直接调用: 点点点为可变参数,随便填写几个参数都可以: sor ...
- Java List集合排序,升序降序
在C#开发中,如果一个List集合需要进行重新排序,直接Orderby即可,但是在Java中,思路一样,但是写法不一样,特记录,方便各位码友学习使用. 自己使用版本 List<UserInfo& ...
- Java常用集合排序
1.list排序 List<String> list = new ArrayList<String>(Arrays.asList("Clinton",&qu ...
最新文章
- Design Pattern - Bridge(C#)
- spring mvc DispatcherServlet解读
- C#ListBox对Item进行重绘,包括颜色
- Linux命令之 mount -- 文件系统挂载
- 管理信息系统数据库设计标准(草稿)
- codeforces 136A-C语言解题报告
- 【java】httpclient 链接偶尔会 Read timed out
- 社区生鲜招团长,物业优势何以难施展?
- 用RT Server Customizer定制Windows 2008 R2安装光盘
- python内置模块在哪个文件夹_用 Python 内置模块处理 ini 配置文件
- 微信小程序直播为什么这么受欢迎
- 【PageHelper】实现拦截pageNum和pageSize
- 苹果几最好用_苹果quot;官方保险quot;再升级,屏幕两年可以碎4次,值么?
- 【飞控开发基础教程3】疯壳·开源编队无人机-串口(基础收发)
- 阿里api网关接口客户端demo,java实现源码,其他语言可参考
- 马云谈年轻人压力大:年轻人怕压力就白活了
- 移动端字体显示大小和css设置大小的不一致解决方案
- setInterval()的三种写法
- 高级JavaScript Day03 | 函数定义和调用、this、严格模式、高阶函数、闭包、递归
- 鼠标移动代码(使用光标健移动)
热门文章
- 数据结构 严蔚敏 第七章 查找 期末复习总结
- sqlserver Month()函数取日期不足两位的加 0(转载)
- 写给学生看的系统分析与验证笔记(十二)——验证ω-正则属性(Verifying ω-regular properties)
- oracle的多个exclude,expdp exclude 如何使用 - 同一schema下3000个表,要剔除其中400多张表...
- windows10自带我的文档等路径修改
- Oracle特殊符号
- A计划 骑士救公主迷宫
- 9:中文乱码处理-Java Web
- Android 应用在后台弹出提示相关的笔记1
- 苹果无需越狱(iPhone、iPad)手机多开教程