java的list集合如何根据对象中的某个字段排序?
转自:http://blog.csdn.net/wangjuan_01/article/details/51351633
List集合按某个字段排序
- package wjtest_01;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.List;
- public class ListSort<E> {
- @SuppressWarnings("unchecked")
- public static void main(String[] args) {
- List<Student> list = new ArrayList<Student>();
- // 创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中
- Student s1 = new Student();
- s1.setAge(20);
- s1.setUsable(true);
- Student s2 = new Student();
- s2.setAge(19);
- s2.setUsable(true);
- Student s3 = new Student();
- s3.setAge(21);
- s3.setUsable(false);
- list.add(s1);
- list.add(s2);
- list.add(s3);
- System.out.println("排序前:" + list);
- Collections.sort(list, new Comparator<Student>() {
- @Override
- public int compare(Student o1, Student o2) {
- // 按照学生的年龄进行升序排列
- if (o1.getAge() > o2.getAge()) {
- return 1;
- }
- if (o1.getAge() == o2.getAge()) {
- return 0;
- }
- return -1;
- }
- });
- System.out.println("升序排序后:" + list);
- Collections.sort(list, new Comparator<Student>() {
- public int compare(Student o1, Student o2) {
- // 按照学生的年龄进行降序排列
- if (o1.getAge() > o2.getAge()) {
- return -1;
- }
- if (o1.getAge() == o2.getAge()) {
- return 0;
- }
- return 1;
- }
- });
- System.out.println("降序排序后:" + list);
- Boolean b1 = true; // 创建Boolean对象1
- Boolean b2 = false; // 创建Boolean对象0
- Boolean b3 = true; // 创建Boolean对象1
- System.out.println(b1);
- int i;
- i = b1.compareTo(b2); // b1和b2进行比较
- System.out.println(i);//1-0
- i = b2.compareTo(b1); // b2和b1进行比较
- System.out.println(i);//0-1
- i = b1.compareTo(b3); // b1和b3进行比较
- System.out.println(i);//1-1
- }
- }
- class Student{
- private int age;
- private Boolean isUsable;
- public int getAge() {
- return age;
- }
- public Boolean isUsable() {
- return isUsable;
- }
- public void setUsable(Boolean isUsable) {
- this.isUsable = isUsable;
- }
- public void setAge(int age) {
- this.age = age;
- }
- @Override
- public String toString() {
- return getAge()+"";
- }
- }
java的list集合如何根据对象中的某个字段排序?的更多相关文章
- C#比较两个对象中的指定字段值是否相等
一.创建CompareFieldAttribute标识要比较的字段 using System; namespace CompareObjField { /// <summary> /// ...
- JavaScript实现对象数组按不同字段排序
如果有一个对象数组,我们想要依据某个对象属性对数组进行排序.而传递给数组sort()方法的比較函数要接收两个參数,即要比較的值.但是.我们须要一种方式来指明依照哪个属性来排序.要解决问题,能够定义一个 ...
- 【HOW】如何对Reporting Services表格中数据按字段排序
Reporting Services中可以设置排序的地方非常多,有很多地方从其字面意思上好像是对表格数据的排序,但实际都不管用.在多次尝试后,得到如下的有效设置方式: 1. 鼠标右键单击要排序字段的内 ...
- Java 利用Map集合计算一个字符串中每个字符出现的次数
步骤分析 1.给出一串字符串,字符串中可以包含字母.数字.符号等等. 2.创建一个Map集合,key是字符串中的字符,value是字符的个数. 3.遍历字符串,获取每一个字符. 5.使用获取到的字符, ...
- Java导出List集合到txt文件中——(四)
有时候,需要将数据以一定格式导出到txt文件中.利用Java的IO可以轻松的导出数据到txt中. package Action.txt; import java.io.BufferedWriter; ...
- Java基础之集合框架——在文件中存储地图(TryPhoneBook2)
控制台程序. import java.io.*; public class Person implements Comparable<Person>, Serializable { // ...
- java利用反射交换两个对象中的字段相同的字段值
有时候我们的两个对象字段都是一样的,只有极少的区别,想要把一个对象字段的值,赋值给另外一个对象值 然后传给另外一个方法使用,但是这个字段太多,一个一个的复制太过繁琐. 这时候利用反射解决这个问题. c ...
- Java实验项目三——职工类对象数组按照职工生日排序
Program: 修改项目三(1)中的第3题,实现比较方法,将对象数组的数据按照生日的大小给职工排序. Description:令日期类MyDate和员工类Worker类实现接口Comparable, ...
- c#判断两个对象和对象中的属性是否相同(以及记录对象中的哪些字段,和详细的改变情况)
当前项目需要记录变更记录,即用户在进行编辑后,将变更操作记录下来.但是数据没有发生变化,则不记录. 代码1:(仅仅返回是否变化的标识) /// <summary> /// 反射对比实体属性 ...
随机推荐
- mysql的show操作
SHOW CHARACTER SET 显示所有可用的字符集 SHOW CHARACTER SET; SHOW CHARACTER SET LIKE 'latin%'; SHOW COLLATION 输 ...
- 使用阿里云Docker镜像加速
使用docker官方的docker hub速度太慢,正好看到国内阿里云也做了docker镜像,于是想试试看阿里云的docker源.先附上 阿里云docker hub地址 .新用户需要注册成为开发者.打 ...
- mysql基础知识详解
分享一些mysql数据库的基础知识. 1.每个客户端连接都会从服务器进程中分到一个属于它的线程.而该连接的相应查询都都会通过该线程处理.2.服务器会缓存线程.因此并不会为每个新连接创建或者销毁线程.3 ...
- atitit.Windows Server 2003 2008 2012系统的新特性 attilax 总结
atitit.Windows Server 2003 2008 2012系统的新特性 attilax 总结 1. Windows Server 2008 新特性也可以归纳为4个方面. 1 2. 相 ...
- 李洪强漫谈iOS开发[C语言-053]-小结
/* 已经学习过的C语言语法 01 基本C程序结构 int main (void) int main(int argc,char *arv){...} 02 基本语句(输入输出) 基本头文件: #in ...
- Hystrix的用法demo
1.引入依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId> ...
- python把中文文档变为拼音
缘由 新看到的一篇文章,被吓尿.Text Understanding from Scratch,认为word的cnn抽象能力还不够好,使用character来做cnn效果更佳.结果是,由于论文的使用的 ...
- Unix系统编程()malloc和free的实现
尽管malloc和free所提供的内存分配接口比之brk和sbrk要容易许多,但在使用时仍然容易犯下各种编程错误. 理解malloc和free的实现,将使我们洞悉产生这些错误的原因以及如何才能避免此类 ...
- 扩展RBAC用户角色权限设计方案<转>
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色- ...
- Android——寄存器和存储器的区别
寄存器和存储器的区别 从根本上讲,寄存器与RAM的物理结构不一样. 一般寄存器是指由基本的RS触发器结构衍生出来的D触发, 就是一些与非门构成的结构,这个在数电里面大家都看过: 而RAM则有自己的 ...