comparableインタフェースとcomparatorインタフェースの特徴と違い

6858 ワード

1. Comparator   Comparable      
    java     ,           class     。
      class:   public class Person{ String name; int age }.
        personList,     person1, person2, persion3.....,    Collections.sort( personList),           . 
, list : StringList{"hello1" , "hello3" , "hello2"}, Collections.sort( stringList ) ,
String Comparable , Person , 。
2. Comparator   Comparable    
Comparable     Person    :

public class Persion implements Comparable {.. Person ..}, , Person ,
String , , Person 。Collections.sort(personList)
 
   
Comparator     Person    ,      Person            ,  public class Person{ String name; int age },
             :  public PersonComparator implements Comparator() {..  Person   ..},
PersonComparator Person . , , personList , personList ,
PersonComparator , Person PersonComparator , : Collections.sort( personList , new PersonComparator()).
3. Comparator   Comparable    
  Comparable     compareTo  ,  compareTo        :
 1 public class Person implements Comparable {
 2      String name;
 3      int age
 4      public int compareTo(Person another) {
 5           int i = 0;
 6           i = name.compareTo(another.name); //         
 7           if(i == 0) { //       ,    ,         
 8                return age - another.age;
 9           } else {
10                return i; //      ,          .
11           }
12      }
13 }
14              Collections.sort( personList )      .
15 Comparator:
16   Comparator     compare   :
17 public class Person{
18      String name;
19      int age
20 }
21 class PersonComparator implements Comparator { 
22      public int compare(Person one, Person another) {
23           int i = 0;
24           i = one.name.compareTo(another.name); //         
25           if(i == 0) { //       ,    ,        
26                return one.age - another.age;
27           } else {
28                return i; //      ,          .
29           }
30      }
31 }
Collections.sort( personList , new PersonComparator())       。
4:  
 
   
        ,  Comparable   ,     Comparable                    ,         ,  Comparator             ,
, , , Comparator ,
, 。
 
 
 

転載先:https://www.cnblogs.com/ScarecrowAnBird/p/6916186.html