rrayList中的元素进行排序,主要考查的是对util包中的Comparator接口和Collections类的使用。
实现Comparator接口必须实现compare方法,自己可以去看API帮助文档。
创建一个Comparator实例后,用Collections.sort(List,<E>)
对List中的元素进行排序。
下面是实现代码:
以下文件必须引入util包:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
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接口
1
2
3
4
5
6
7
8
9
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
public class Test { /** * @param args */ 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()); } } } |
总结
以上就是本文关于对arraylist中元素进行排序实例代码的全部内容,希望对大家有所帮助。如有不足之处,欢迎提出您的宝贵意见,小编会及时回复大家的。感谢朋友们对本站的支持!
原文链接:http://www.cnblogs.com/cvst/articles/5818365.html