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