当前位置: 首页 > article >正文

对ArrayList集合中的元素进行排序

如果要对ArrayList集合中的元素进行排序,需要用到java工具包中的Collections类的sort方法。

具体用法可以查看jdk帮助文档。

在这里先创建一个Person类,包含姓名,性别,年龄,身份证号,出生日期。如以下代码:

public class Person {private String name;private String birthday;private String idCard;private char sex;private int age;//getters和setterspublic String getName() {return name;}public void setName(String name) {this.name = name;}public String getBirthday() {return birthday;}public void setBirthday(String birthday) {this.birthday = birthday;}public String getIdCard() {return idCard;}public void setIdCard(String idCard) {this.idCard = idCard;}public char getSex() {return sex;}public void setSex(char sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//构造函数public Person(){}public Person(String name,String birthday,String idCard,char sex,int age){this.name = name;this.birthday = birthday;this.idCard = idCard;this.sex = sex;this.age = age;}//输出信息public String toString(){return name+","+sex+","+age+","+birthday+","+idCard;}
}

然后创建排序的类(其中包括按照姓名排序,按照年龄排序,按照出生日期排序),如以下代码所示:

import java.util.Comparator;
public class CompareName implements Comparator<Person>{//按照姓名进行排序@Overridepublic int compare(Person p1, Person p2) {// TODO Auto-generated method stubreturn p1.getName().compareTo(p2.getName());}
}
class CompareBirthday implements Comparator<Person>{//按照出生日期进行排序@Overridepublic int compare(Person p1, Person p2) {// TODO Auto-generated method stubreturn p1.getBirthday().compareTo(p2.getBirthday());}
}
class CompareAge implements Comparator<Person>{//按照年龄进行排序@Overridepublic int compare(Person p1, Person p2) {// TODO Auto-generated method stubif(p1.getAge()>p2.getAge())return 1;else return -1;}
}

最后创建一个主类(在这里我明明为First),用来调用以上所写的类并使程序可以执行。

import java.util.ArrayList;
import java.util.Collections;
public class First {public static void main(String[] args){ArrayList<Person> value = new ArrayList<Person>();Person p1 = new Person("张三","1994-3-3","45612346548",'男',26);Person p2 = new Person("赵四","2000-5-24","16546165746",'男',20);Person p3 = new Person("刘武","1997-2-3","156461656487",'男',23);Person p4 = new Person("丁晓晓","1996-6-13","36548588788",'女',24);//将创建的各元素添加到ArrayList集合中value.add(p1);value.add(p2);value.add(p3);value.add(p4);CompareName cn = new CompareName();CompareBirthday cb = new CompareBirthday();CompareAge ca = new CompareAge();System.out.println("\n按姓名排序:");//其中\n表示换行Collections.sort(value,cn);for(int i = 0; i < value.size(); i++)System.out.println(value.get(i).toString());System.out.println("\n按年龄排序:");Collections.sort(value,ca);for(int i = 0; i < value.size(); i++)System.out.println(value.get(i).toString());System.out.println("\n按生日排序:");Collections.sort(value,cb);for(int i = 0; i < value.size(); i++)System.out.println(value.get(i).toString());}
}

最后看一下运行结果:
按姓名排序:
丁晓晓,女,24,1996-6-13,36548588788
刘武,男,23,1997-2-3,156461656487
张三,男,26,1994-3-3,45612346548
赵四,男,20,2000-5-24,16546165746

按年龄排序:
赵四,男,20,2000-5-24,16546165746
刘武,男,23,1997-2-3,156461656487
丁晓晓,女,24,1996-6-13,36548588788
张三,男,26,1994-3-3,45612346548

按生日排序:
张三,男,26,1994-3-3,45612346548
丁晓晓,女,24,1996-6-13,36548588788
刘武,男,23,1997-2-3,156461656487
赵四,男,20,2000-5-24,16546165746

http://www.lryc.cn/news/2417326.html

相关文章:

  • java 乱写4 异常常常常
  • (linux)中文显示乱码问题解决方法(编码查看及转换)
  • 电脑常识——host文件修改(屏蔽网站或解开屏蔽)
  • Java 8 的 Nashorn 脚本引擎教程
  • 串行通信接口详细描述
  • APUE学习之socket网络编程
  • [JavaScript]如何将www.xxx.com变为com.xxx.www
  • Serialization全解析
  • 手把手教你ubuntu下移植MJPG-streamer
  • 软件的三层架构
  • php pathinfo 什么用,在php中pathinfo函数起什么作用呢?
  • 使用Flurl轻松构建URL并在.NET中进行可测试的HttpClient调用
  • 单点登录实现的几种方式及原理【单点登录】
  • FTP客户端和服务器的设计与实现(C#)
  • 超详细双系统安装指南
  • IGBT驱动及保护电路(之一)
  • MemoryStream有关内存数据的读写
  • cpio文件的压缩与解压缩
  • Javascript中parentElement和parentNode的区别
  • 在线提取网页视频的网站
  • Mysql数据库中修改密码的几种方式
  • VB使用ADODB操作数据库的常用方法
  • 全国电子市场大全
  • 字符数组---string用法
  • Android 模拟器使用 Fiddler 抓包
  • ONNX 模型格式分析与使用
  • (原创)教你如何使用VNN来异地管理内网服务器
  • 面向新手的Web服务器搭建(一)——IIS的搭建
  • 转 color颜色十六进制编码大全~
  • js nextSibling属性和previousSibling属性概述及使用注意