现在的位置: 首页 > 综合 > 正文

比较器(Comparator)实例

2013年08月21日 ⁄ 综合 ⁄ 共 1592字 ⁄ 字号 评论关闭

      利用比较器(Comparator)我们可以轻易对List中的元素进行整体排序

       希望下面的代码能让很多喜欢在JSP页面上写排序算法的朋友改掉这个恶习。表现层的东西还是逻辑简单为好,越白痴越好。

package testCompare;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Random;

/**
 * 注意:此类具有与 equals 不一致的自然排序
 
*/

public class Person {

    
private int age;

    
private String name;

    
public int getAge() {
        
return age;
    }


    
public void setAge(int age) {
        
this.age = age;
    }


    
public String getName() {
        
return name;
    }


    
public void setName(String name) {
        
this.name = name;
    }


    
public String toString() {
        
return String.valueOf(this.age);
    }


    
public static void main(String[] args) {
        List persons 
= new ArrayList();
        Random ageCreator 
= new Random();
        
for (int i = 0; i < 10; i++{
            Person person 
= new Person();
            
int age = ageCreator.nextInt();
            
while(true)
            
{
                
if(age > 0){
                    age 
= age % 100;
                    
break;
                }
else{
                    age 
= ageCreator.nextInt();
                }

            }

            person.setAge(age);
            persons.add(person);
        }

        Collections.sort(persons,
new AgeComparator());
        
        
for (int i = 0; i < persons.size(); i++{
            System.out.println(persons.get(i));
        }

    }

    
}


class AgeComparator implements Comparator{

    
public int compare(Object arg0, Object arg1) {
        
return ((Person)arg0).getAge() - ((Person)arg1).getAge();
    }

}

抱歉!评论已关闭.