[Java]如何为一个自定义类型的List排序。
好吧,三年了,又重拾我的博客了,是因为啥呢,哈哈哈。今天被问到一个题目,当场答不出来,动手动的少了,再此记录下来。
Q:有一个MyObject类型的List,MyObject定义如下:
class MyObject{
public int age;
public String name; public MyObject(int age,String name){
this.age = age;
this.name = name;
} @Override
public String toString() {
return "MyObject [age=" + age + ", name=" + name + "]";
} }
现在要求对该List按照MyObject里面的age字段进行排序。
A:编码时间太少了,这种问题都没答出来,说了一堆有得没得的,不多说废话了,上答案。使用Collections.sort方法,由于是自定义类型,所以需要编写Comparator来定义对象比较规则。代码如下:
// TODO Auto-generated method stub
MyObject obj1 = new MyObject(10,"mengwen");
MyObject obj2 = new MyObject(20,"xiaowang");
MyObject obj3 = new MyObject(15,"xiaoli");
List<MyObject> obList = new ArrayList<MyObject>();
obList.add(obj1);
obList.add(obj2);
obList.add(obj3); Collections.sort(obList, new Comparator<MyObject>(){ @Override
public int compare(MyObject o1, MyObject o2) {
return o1.age - o2.age;
}
}); for(MyObject obj : obList){
System.out.println(obj.toString());
}
程序运行结果:
//MyObject [age=10, name=mengwen]
//MyObject [age=15, name=xiaoli]
//MyObject [age=20, name=xiaowang]
[Java]如何为一个自定义类型的List排序。的更多相关文章
- 怎么在java中创建一个自定义的collector
目录 简介 Collector介绍 自定义Collector 总结 怎么在java中创建一个自定义的collector 简介 在之前的java collectors文章里面,我们讲到了stream的c ...
- Redis序列化存储Java集合List等自定义类型
在"Redis学习总结和相关资料"http://blog.csdn.net/fansunion/article/details/49278209 这篇文章中,对Redis做了总体的 ...
- 用Java编程语言对一个无序整形数组进行排序(冒泡排序,选择排序,插入排序)
public static void main(String[] args) { /** * 冒泡排序 * 思路:每个轮次都让第一个数和其后所有的数进行轮比较,如果这轮的第一个数大则和其下一个数交换位 ...
- 用SQLData读写数据库自定义类型
如何读写自定义类型?SQLData是个很直观的解决办法 在oracle使用手册上找到了很好的资料 点击打开链接 http://docs.oracle.com/cd/B10501_01/java.920 ...
- Hadoop日记Day13---使用hadoop自定义类型处理手机上网日志
测试数据的下载地址为:http://pan.baidu.com/s/1gdgSn6r 一.文件分析 首先可以用文本编辑器打开一个HTTP_20130313143750.dat的二进制文件,这个文件的内 ...
- 《Go语言实战》Go 类型:基本类型、引用类型、结构类型、自定义类型
Go 语言是一种静态类型的编程语言,所以在编译器进行编译的时候,就要知道每个值的类型,这样编译器就知道要为这个值分配多少内存,并且知道这段分配的内存表示什么. 提前知道值的类型的好处有很多,比如编译器 ...
- 转载:oracle 自定义类型 type / create type
标签:type create oracle object record 一:Oracle中的类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nvarc ...
- oracle 自定义类型 type / create type
一:Oracle中的类型有很多种,主要可以分为以下几类: 1.字符串类型.如:char.nchar.varchar2.nvarchar2. 2.数值类型.如:int.number(p,s).integ ...
- JavaScript之面向对象学习七(动态原型模式、寄生构造函数模式、稳妥构造函数模式创建自定义类型)
一.动态原型模式 在面向对象学习六中的随笔中,了解到组合构造函数模式和原型模式创建的自定义类型可能最完善的!但是人无完人,代码亦是如此! 有其他oo语言经验的开发人员在看到独立的构造函数和原型时,很可 ...
随机推荐
- vue编译环境和线上环境url切换
新建一个配置js,导入到接口请求管理类,可以自动根据环境切换if (process.env.NODE_ENV == 'development') { baseUrl = ''; }else{ base ...
- spark SQL学习(案例-统计每日uv)
需求:统计每日uv package wujiadong_sparkSQL import org.apache.spark.sql.{Row, SQLContext} import org.apache ...
- ng2 quickstart-primeng
1.导入quickstart-angular项目 2.安装primeng npm install primeng 3.安装@angular/animations npm install @angula ...
- git开发错分支
1,代码未提交时: 使用以下命令即可解决. git add . (把所有改动暂存) git stash (把暂存的文件提交到git的暂存栈) git checkout 本该提交代码的 ...
- ZooKeeper分布式锁简单实践
ZooKeeper分布式锁简单实践 在分布式解决方案中,Zookeeper是一个分布式协调工具.当多个JVM客户端,同时在ZooKeeper上创建相同的一个临时节点,因为临时节点路径是保证唯一,只要谁 ...
- angular 当使用ng-repeat 时出现 $$hashKey的键值对
小问题 把: ng-repeat="item in items " 改成 : ng-repeat="item in items track by $index"
- 解决:make:cc 命令未找到的解决方法
安装Redis的时候报这个错误 原因:未安装gcc 解决方法:安装gcc 自动安装,包括依赖库[root@VM_220_111_centos redis-3.2.9]# yum -y install ...
- 关于hugepages 3.txt
关于hugepages 3.txt --//有一段时间我一直强调安装oracle一定要配置hugepage,因为现在的服务器内存越来越大,如果还使用4K的页面表,如果内存表占用内存巨大, --//特别 ...
- Android真机调试——远程主机强迫关闭了一个现有的连接。
以前用真机调试程序的时候,Android Studio 出现如下的错误 [2016-11-12 10:37:36 - DeviceMonitor] Adb connection Error:远程主机强 ...
- 三重Des对称加密在Android、Ios 和Java 平台的实现
引言 如今手机app五彩缤纷,确保手机用户的数据安全是开发人员必须掌握的技巧,下面通过实例介绍DES在android.ios.java平台的使用方法: DES加密是目前最常用的对称加密方式, ...