1 package com.iotek.set;
 2
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.Comparator;
 6 import java.util.List;
 7 /**
 8  *
 9  * 对ArrayList容器中的内容进行排序: ArrayList中存储多个Person对象(具有name,age,id属性),
10  * 要求按照年龄从小到大排序,年龄相等的话再按照名字的自然顺序来排序输出
11  * 思路:
12  * 使用ArrayList来存储Person对象,使用Collections类所提供的静态方法sort来按照要求对
13  * ArrayList进行排序,然后输出排序好的信息。
14  * @author Administrator
15  *
16  */
17 public class CollectionsDemo2 {
18     /* 1.创建一个ArrayList容器
19      * 2.创建一个Person类,具有name,age,id属性
20      * 3.对容器中的数据排序,用Collections类的方法sort对List接口的实现类排序
21      * 4.输出排序好的内容 */
22
23     public static void main(String[] args) {
24         List<Personc> data = new ArrayList<Personc>();
25         data.add(new Personc("jack",20,10));
26         data.add(new Personc("rose",10,7));
27         data.add(new Personc("mary",30,6));
28         data.add(new Personc("zhang",50,18));
29         data.add(new Personc("jay",20,11));
30         Collections.sort(data, new Comparator<Personc>() {
31             @Override
32             public int compare(Personc o1, Personc o2) {
33 //                首先按年龄来排序
34                 if(o1.getAge() - o2.getAge() > 0) {
35                     return 1;
36                 } else if(o1.getAge() - o2.getAge() < 0) {
37                     return -1;
38                 } else { //年龄相等时,再按照名字来进行排序,
39                     /*具体的字符串是String类的实例化对象,可以调用String类的
40                      * compareTo(String anotherString)方法来对字符串按照字典顺序进行排序
41 */                    return o1.getName().compareTo(o2.getName());
42                 }
43             }
44         });
45
46         for(Personc p : data) {
47             System.out.println(p.toString());
48         }
49     }
50
51 }
52 /* sort(List<T> list, Comparator<? super T> c) 根据指定比较器产生的顺序对指定列表进行排序
53  * Comparator<? super T> c   c表示一个比较器,比较器可以用匿名内部类来实现
54  * 匿名内部类产生的是个接口的实现类对象,因此要实现这个接口中的compare()方法   */
55 /*String.compareTo(String anotherString) 按字典顺序比较两个字符串,返回一个int类型的值*/
56
57 class Personc {
58     private String name;
59     private int age;
60     private int id;
61     public Personc(String name, int age, int id) {
62         super();
63         this.name = name;
64         this.age = age;
65         this.id = id;
66     }
67     public String getName() {
68         return name;
69     }
70     public void setName(String name) {
71         this.name = name;
72     }
73     public int getAge() {
74         return age;
75     }
76     public void setAge(int age) {
77         this.age = age;
78     }
79     public int getId() {
80         return id;
81     }
82     public void setId(int id) {
83         this.id = id;
84     }
85     @Override
86     //重写toString方法,定义打印格式
87     public String toString() {
88         return "Person [name=" + name + ", age=" + age + ", id=" + id + "]";
89     }
90
91 }

转载于:https://www.cnblogs.com/enjoyjava/p/9393398.html

ht-8 对arrayList中的自定义对象排序( Collections.sort(ListT list, Comparator? super T c))...相关推荐

  1. js中的数组对象排序(方法sort()详细介绍)

    定义和用法 sort() 方法用于对数组的元素进行排序. 语法    arrayObject.sort(sortby) 参数sortby:可选.规定排序顺序.必须是函数. 返回值 对数组的引用.请注意 ...

  2. JAVA-List排序-Collections.sort()-对象数组(集合)根据某一属性排序

    JAVA-List排序-Collections.sort() 当我们想对一个对象数组(集合)根据某一属性进行排序时,我们可以使用list中的Collection.sort(),这是一种较快捷的方式. ...

  3. 集合中存储自定义对象源代码

    集合中存储自定义对象: package attention;import java.util.ArrayList; import java.util.Collection; import java.u ...

  4. java 自定义对象 排序,使用自定义排序顺序对对象的ArrayList进行排序

    问题 我希望为我的地址簿应用程序实现一个排序功能. 我想排序anArrayList contactArray.Contact是一个包含四个字段的类:名称,家庭电话号码,手机号码和地址.我想排序name ...

  5. java基础—TreeSet集合中储存自定义对象(java集合二)

    TreeSet集合中储存学生对象,按照其年龄进行排序 TreeSet对元素进行排序的方式一: 让元素自身具备比较功能,元素就需要实现Comparable接口,覆盖compareTo方法. TreeSe ...

  6. 本实例演示往TreeSet集合中存储自定义对象

    1 package JiHe.Set; 2 3 import java.util.Iterator; 4 import java.util.TreeSet; 5 6 /* 7 * 本实例演示往Tree ...

  7. 绒毛动物探测器:通过TensorFlow.js中的迁移学习识别浏览器中的自定义对象

    目录 起点 MobileNet v1体系结构上的迁移学习 修改模型 训练新模式 运行物体识别 终点线 下一步是什么?我们可以检测到脸部吗? 下载TensorFlowJS-Examples-master ...

  8. java中如何对对象排序?

    大家好,我是雄雄. 前言: 我们知道,在平时做项目的过程中,我们总会用到各种各样的排序,或是升序,或是降序.在java中,要实现排序有好多中方式,比如我们耳熟能详的冒泡排序.选择排序等,但是我们一般都 ...

  9. store 存取数据数组对象_ios – 如何在数组中保存自定义对象并将其存储在NSUserDefaults – iPhone中...

    要在用户默认值上存储和检索具有自定义对象的数组,您可以使用以下方法: -(void)writeArrayWithCustomObjToUserDefaults:(NSString *)keyName ...

最新文章

  1. UVA11584 划分成回文串 Partitioning by Palindromes(线性DP划分+DP判断回文串)
  2. 《设计模式之禅》学习笔记(一)
  3. golang中变量使用情况
  4. 桑文锋:创业是场持久战,我希望能重构中国互联网的数据根基
  5. 嵌入式电路设计(物联网esp32最小电路设计)
  6. 个人事业实现突破的关键点
  7. 自动化比手工测试成本高?使用Selenium评估测试自动化的ROI指标
  8. 5.7 Universal Transformers
  9. 高德地图-AndroidStadio-No implementation found for long com.autonavi.amap.mapcore.MapCore.nativeNewInsta
  10. FL Studio20.9中文语言版安装下载 附带免费插件
  11. RayData大数据可视化教程(2)——动画制作基础和设置为本地资源库
  12. android车机升级carplay,现代增加支持DIY升级CarPlay,Android Auto的车型
  13. directshow
  14. java上传图片至阿里云oss服务器
  15. php中lpush(),LPUSH命令_视频讲解_用法示例-redis编程词典-php中文网
  16. TRUNCATE和DETELE的区别
  17. SharpDevelop5.1支持.net4.5.2以上版本
  18. pvm虚拟机基本原理
  19. 还不了解游戏建模教程吗?看完这篇文章让你从小白变为油条
  20. 高德地图 AMap.Driving

热门文章

  1. MATLAB 成绩排序
  2. 计算机转集成光学,集成光学
  3. allure 测试报告本地打开_Allure--自动化测试报告生成
  4. 计算机二级vb知识点汇总,计算机二级vb基础知识考点整理(13页)-原创力文档...
  5. 【linux系统】maven安装
  6. 20190429 照片里面的GPS信息确实会暴露经纬度
  7. 随笔 —— 当下不晚
  8. HDU 2072 单词数
  9. SQL语句将某字段查询出以逗号隔开
  10. Centos下搭建ftp服务器