比较器(Comparator)实例

本文介绍了一种使用Comparator实现的高效排序方法,该方法适用于Java List集合中的对象排序。通过自定义比较器AgeComparator,实现了根据Person对象的年龄属性进行升序排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      利用比较器(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();
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值