广州有哪些做网站的公司,2008发布asp网站,呼和浩特网站制作公司,南昌旅游集团网站建设public interface Comparable
Comparable 接口位于 java.lang 包下#xff0c;对实现它的每个类的对象强加一个总排序#xff0c;这种排序被称为类的自然顺序#xff0c;compareTo 方法被称为其自然比较方法。
实现此接口的对象的列表#xff08;和数组#xff09;可以由…public interface Comparable
Comparable 接口位于 java.lang 包下对实现它的每个类的对象强加一个总排序这种排序被称为类的自然顺序compareTo 方法被称为其自然比较方法。
实现此接口的对象的列表和数组可以由 Collections.sort 和 Arrays.sort 自动排序。
要使用该接口必须实现( implements ) 它并重写 compareTo() 方法因此会更改原始对象的代码结构即破坏源码所以被称为侵入式排序。
int compareTo(T o)将此对象与指定的对象进行比较以获得顺序返回负整数零或正整数表示此对象小于等于或大于指定对象。
public class User implements ComparableUser{private Integer number;public User(Integer number) {this.number number;}Overridepublic int compareTo(User user) {if (this.number.compareTo(user.number) 0) {return 1;} else if (this.number.compareTo(user.number) 0) {return -1;} else {return 0;}}public static void main(String[] args) {ListUser userList new ArrayList();userList.add(new User(2));userList.add(new User(1));userList.add(new User(3));Collections.sort(userList);for (User user : userList) {System.out.println(user.number);}}}public interface Comparator
Comparator 接口位于 java.util 包下此接口可以对对象集合施加总排序可以将比较器传递给排序方法Collections.sort 或 Arrays.sort 以便精确控制排序顺序。
此方法不会侵入到原本的对象中改变代码结构即不会破坏源码所以被称为非侵入式排序。
int compare(T o1, T o2)比较它的两个参数的顺序返回负整数零或正整数表示第一个参数小于等于或大于第二个参数。
public class Test1 {public static void main(String[] args) {ListUser userList new ArrayList();userList.add(new User(2));userList.add(new User(1));userList.add(new User(3));UserComparator userComparator new UserComparator();Collections.sort(userList,userComparator);for (User user : userList) {System.out.println(user.getNumber());}}}class User {private Integer number;public Integer getNumber() {return number;}public void setNumber(Integer number) {this.number number;}public User(Integer number) {this.number number;}
}class UserComparator implements ComparatorUser {Overridepublic int compare(User t1, User t2) {int l t1.getNumber() - t2.getNumber();if (l 0) {return 1;} else if (l 0) {return -1;} else {return 0;}}
}比较
Comparble 相当于“内部比较器”Comparator 相当于“外部比较器”。