java如何对arraylist中元素进行排序
短信预约 -IT技能 免费直播动态提醒
这篇文章主要介绍了java如何对arraylist中元素进行排序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
rrayList中的元素进行排序,主要考查的是对util包中的Comparator接口和Collections类的使用。
实现Comparator接口必须实现compare方法,自己可以去看API帮助文档。
创建一个Comparator实例后,用Collections.sort(List,<E>)
对List中的元素进行排序。
下面是实现代码:
以下文件必须引入util包:
package com.test;import Java.util.*;Emp.java文件如下:class Emp{private String empNo ;private String empName ;private float sal ;public String getEmpNo() {return empNo;}public void setEmpNo(String empNo) {this.empNo = empNo;}public String getEmpName() {return empName;}public void setEmpName(String empName) {this.empName = empName;}public float getSal() {return sal;}public void setSal(float sal) {this.sal = sal;}public Emp(String empNo,String empName,float sal){this.empNo = empNo ;this.empName = empName ;this.sal = sal ;}}
自己实现的Comparator接口
class MyComparator implements Comparator{public int compare(Object o1,Object o2) {Emp e1=(Emp)o1;Emp e2=(Emp)o2;if(e1.getSal()<e2.getSal()) return 1; else return 0;}}
主类Test
public class Test {public static void main(String[] args) {// TODO Auto-generated method stub ArrayList al = new ArrayList() ;Emp emp1 = new Emp("sn001","ysj1",2500) ;Emp emp2 = new Emp("sn002","ysj2",1200) ;Emp emp3 = new Emp("sn003","ysj3",8900) ;Emp emp4 = new Emp("sn004","ysj4",3400) ;Emp emp5 = new Emp("sn005","ysj5",4500) ;al.add(emp1) ;al.add(emp2) ;al.add(emp3) ;al.add(emp4) ;al.add(emp5) ;System.out.println("排序前的值");for (int i=0;i<al.size();i++){Emp emp = (Emp)al.get(i) ;System.out.println(emp.getSal());}//必须是Comparator中的compare方法和Collections.sort方法配合使用才管用 MyComparator mc = new MyComparator() ;Collections.sort(al, mc) ;System.out.println("排序后的值");for (int i=0;i<al.size();i++){Emp emp = (Emp)al.get(i) ;System.out.println(emp.getSal());}}}
感谢你能够认真阅读完这篇文章,希望小编分享的“java如何对arraylist中元素进行排序”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341