[J2SE]List中的排序

 

import  java.util.ArrayList;
import  java.util.LinkedList;
import  java.util.List;
import  java.util.Collections;

/**
 * 收获:
 * (1)List中的add方法,会调用toString方法。所以覆盖toString方法,才能加入相应的成员变量字符串
 * (2)List的排序通过Collections中的sort方法来实现。而该方法调用了Comparable接口中的compareTo方法;
 *    所以当List中是用户自定义对象时,如果要得到正确的排序结果,需要让用户自定义类继承Comparable接口,
 *    覆盖掉其中的compareTo方法。
 
*/

public   class  TestString  {
    
public static void main(String[] args) {
        List list 
= new LinkedList();
        list.add(
new NameTwo("Tom","Jerry"));
        list.add(
new NameTwo("Steve","Samuelson"));
        list.add(
new NameTwo("Jack","Paul"));
        Collections.sort(list);
        System.out.println(list);
    }

}


class  NameTwo  implements  Comparable {
    String firstname;
    String lastname;
    
    
    NameTwo(String firstname,String lastname)
{
        
this.firstname=firstname;
        
this.lastname=lastname;
    }

    
    
public String toString(){
        
return firstname+lastname;
    }

    
public int compareTo(Object obj) {
        NameTwo name 
= (NameTwo)obj;
        
int firstCmp = firstname.compareTo(name.firstname);
        
return
        (firstCmp
!=0?firstCmp:lastname.compareTo(name.lastname));
    }
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值