java基础 -- Collections.sort的两种用法
2024-08-26 19:16:39
- /**
- * @author
- * @version
- * 类说明
- */
- package com.jabberchina.test;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.List;
- public class SortTest {
- public static void main(String[] args) {
- List<String> lists = new ArrayList<String>();
- List<A> list = new ArrayList<A>();
- List<B> listB = new ArrayList<B>();
- lists.add("5");
- lists.add("2");
- lists.add("9");
- //lists中的对象String 本身含有compareTo方法,所以可以直接调用sort方法,按自然顺序排序,即升序排序
- Collections.sort(lists);
- A aa = new A();
- aa.setName("aa");
- aa.setOrder(1);
- A bb = new A();
- bb.setName("bb");
- bb.setOrder(2);
- list.add(bb);
- list.add(aa);
- //list中的对象A实现Comparable接口
- Collections.sort(list);
- B ab = new B();
- ab.setName("ab");
- ab.setOrder("1");
- B ba = new B();
- ba.setName("ba");
- ba.setOrder("2");
- listB.add(ba);
- listB.add(ab);
- //根据Collections.sort重载方法来实现
- Collections.sort(listB,new Comparator<B>(){
- @Override
- public int compare(B b1, B b2) {
- return b1.getOrder().compareTo(b2.getOrder());
- }
- });
- System.out.println(lists);
- System.out.println(list);
- System.out.println(listB);
- }
- }
- class A implements Comparable<A>{
- private String name;
- private Integer order;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Integer getOrder() {
- return order;
- }
- public void setOrder(Integer order) {
- this.order = order;
- }
- @Override
- public String toString() {
- return "name is "+name+" order is "+order;
- }
- @Override
- public int compareTo(A a) {
- return this.order.compareTo(a.getOrder());
- }
- }
- class B{
- private String name;
- private String order;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getOrder() {
- return order;
- }
- public void setOrder(String order) {
- this.order = order;
- }
- @Override
- public String toString() {
- return "name is "+name+" order is "+order;
- }
- }
- 打印的结果为:
- [2, 5, 9]
- [name is aa order is 1, name is bb order is 2]
- [name is ab order is 1, name is ba order is 2]
最新文章
- 如何离线创建Ionic/cordova项目
- Criteria查询初学者的采纳点哦
- ORACLE SQL Developer日期显示格式设置
- BZOJ 1412 &; 最小割
- BJFU 1057
- bzoj3745: [Coci2015]Norma
- Windows Server 2012之搭建域控制器DC
- 大话RAC介质恢复---只有备份文件的恢复
- Objective-C的singleton模式
- Objective-C 记录
- Firefox添加插件支持修改Headers
- delphi中DLL编程详解
- SQLyog 注册码
- [QML] Connections元素介绍
- 纯JS写动态分页样式效果
- Time Complexity of Loop with Powers
- 在地铁上看了zabbix 的书发现 ";报警执行远程命令";
- Linux下高效指令
- vsftp 基于虚拟用户的ftp服务器 如何做配额
- 微信小程序如何导入字体图标
热门文章
- python入门23 pymssql模块(python连接sql server增删改数据 )
- softmax实现cifar10分类
- [18/11/29] 继承(extends)和方法的重写(override,不是重载)
- Windows XP和Wndows7误删除了注册表下.exe文件夹之修复办法
- js实现div滚动条在页面刷新 滚动条位置固定
- Android学习笔记_46_Android的intent之间Object、List、List<;Object>;和全局变量数据的传递(Parcelable Serializable)
- 18年selenium3+python3+unittest自动化测试教程(下)
- group by 注意的细节 ,
- django-auth认证模块
- 你不知道的javaScript笔记(2)