[20160725]MyComparableTest

知识点:

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 }

 

posted @ 2016-07-25 14:31  娃哈哈哈  阅读(158)  评论(0编辑  收藏  举报