[20160725]MyComparableTest

本文演示了如何使用Java的Collections框架进行集合操作,并通过自定义类实现Comparable接口完成对象排序。同时介绍了如何重写toString(), equals() 和 hashCode() 方法。

知识点:

1、Collections的使用。

2、自定义类泛型的使用。

3、自定义类,toString();equals();hashCode()方法的重写。

 1 import java.util.*;
 2 
 3 public class MyComparableTest{
 4   public static void main(String[] args) {
 5     List<Name> a=new LinkedList<Name>();
 6     a.add(new Name("shang","zeng"));
 7     a.add(new Name("qi","li"));
 8     a.add(new Name("mei","niang"));
 9     a.add(new Name("peingfei","chen"));
10 
11     System.out.println(a);
12     Collections.sort(a);
13     System.out.println(a);
14 
15 
16     System.out.println(a.remove(new Name("peingfei","chen")));
17     System.out.println(a);
18 
19   }
20 }
21 
22 class Name implements Comparable<Name>{
23   String firstname,lastname;
24 
25   public Name(String firstname,String lastname){
26     this.firstname=firstname;
27     this.lastname=lastname;
28   }
29 
30     public String toString(){
31      return(firstname+" "+lastname);
32   }
33 
34 /* //equals()method one
35   public boolean equals(Object obj){
36     if (obj==null){  return false;  }
37     else
38        { if(obj instanceof Name)
39              {
40                Name n = (Name)obj;
41                if (this.firstname.equals(n.firstname) && this.lastname.equals(n.lastname)){return true;}
42              }
43 
44         return false;
45        }
46   }
47 */
48   // equals()methoed two
49 public boolean equals(Object obj){
50    if(obj instanceof Name){
51      Name n=(Name)obj;
52      return (this.firstname.equals(n.firstname))
53          && (this.lastname.equals(n.lastname));
54    }
55 
56     return super.equals(obj);
57 }
58 
59   public int hashCode(){  return firstname.hashCode();  }
60 
61    public int compareTo(Name o){
62      int lastnamecompare=lastname.compareTo(o.lastname);
63      return
64          (lastnamecompare!=0?lastnamecompare:firstname.compareTo(o.firstname));
65    }
66 }

 

转载于:https://www.cnblogs.com/jasonzeng888/p/5703388.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值