一,比較器
比較變量之間的大小 -> 排序
1. 可比性
此接口對實現它的每個類的對象強制執(zhí)行排序。
實現此接口的對象的數組, 可以通過Arrays.sort自動排序。
comparable中有個compareTo方法
將此對象與指定對象進行順序比較。 當此對象小于、等于或大于指定對象時,返回負整數、零或正整數。
2. 比較器
一個比較接口,它對某些對象集合進行排序。
可以將比較器(new了一個實現了comparator接口的對象)傳遞給排序方法(例如Collections.sort或Arrays.sort)。
用法場景:
如果這個類是我們自己寫的,需要比較排序, 實現Comprable, 如果不是我們自己寫的代碼, 我們無法修改的代碼, 通過comparator。
二,Comparable
public class Student implements Comparable<Student>{
public String name;
public Integer score;
public Integer age;
public Student(String name, Integer score, Integer age) {
this.name = name;
this.score = score;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\\'' +
", score=" + score +
", age=" + age +
'}';
}
/**
* int aInt = gaoPeng.compareTo(tuEnXia);
* 此對象指的是gaoPeng, 指定對象指的是tuEnXia
* 將此對象與指定對象進行大小比較。當此對象小于、等于或大于指定對象時,返回負整數、零或正整數
* @return
*/
@Override
public int compareTo(Student other) {
int diff = this.score - other.score;
return diff;
}
}
public class ComparableDemo01 {
public static void main(String[] args) {
Student student1 = new Student("張三", 700, 19);
Student student2 = new Student("李四", 666, 18);
Student student3 = new Student("王麻子", 750, 19);
// //1. 數組排序
// Student[] students = {student1,student2,student3};
// Arrays.sort(students);
// System.out.println(Arrays.toString(students));
//2, 集合的comparable排序
ArrayList students = new ArrayList<>();
students.add(student1);
students.add(student2);
students.add(student3);
// Collections.sort(students);
// System.out.println(students);
//這個地方要求傳入一個Compartor, 如果傳入是個null, arraylist將會自動調用本集合中對象的comparable方法
students.sort(null);
System.out.println(students);
}
}
三,Comparator
public class PointComparator implements Comparator<Point> {
@Override
public int compare(Point point1, Point point2) {
int diff = point1.x + point1.y - point2.x - point2.y;
return diff;
}
}
public class PointComparator {
public static void main(String[] args) {
Point point1 = new Point(44, 55);
Point point2 = new Point(58, 56);
Point point3 = new Point(58, 96);
//1,數組排序
// Point[] points = {point1,point2,point3};
// Arrays.sort(points,new PointComparator());
// System.out.println(Arrays.toString(points));
//2 集合排序
LinkedList<Point> linkedList = new LinkedList<>();
linkedList.add(point1);
linkedList.add(point2);
linkedList.add(point3);
// Collections.sort(linkedList,new PointComparator());
// linkedList.sort(new PointComparator());
// System.out.println(linkedList);
//3 通過匿名內部類排序
Comparator<Point> comparator = new Comparator<Point>() {
@Override
public int compare(Point o1, Point o2) {
int diff = o1.x + o1.y - o2.x - o2.y;
return diff;
}
};
// linkedList.sort(comparator);
Collections.sort(linkedList,comparator);
System.out.println(linkedList);
}
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。
舉報投訴
-
接口
+關注
關注
33文章
8611瀏覽量
151251 -
比較器
+關注
關注
14文章
1651瀏覽量
107232 -
對象
+關注
關注
1文章
38瀏覽量
17401 -
整數
+關注
關注
0文章
13瀏覽量
6539 -
數組
+關注
關注
1文章
417瀏覽量
25960
發(fā)布評論請先 登錄
相關推薦
比較器輸入噪聲
大家好,希望有人能幫上忙,我用16F1779做一些模擬的事情,我用的是所有的OPA模塊,它仍然沒有“干凈”我的信號。所以我使用了一個比較器的輸出,它有點噪音,把RC LO通行證放在上面,得到了一個
發(fā)表于 05-06 12:30
請問比較器問題的中斷生成有哪些原因?
嗨,大家好。我試著從比較器輸出信號的上升沿產生一個中斷信號。我已經連接了60MHz時鐘(我的PSoC5LP芯片的主時鐘)到比較器的時鐘輸入和ISR組件到
發(fā)表于 07-30 12:00
如何區(qū)別放大器及比較器
運放和比較器的區(qū)別: 比較器和運放雖然在電路圖上符號相同,但這兩種器件確有非常大的區(qū)別,一般不
發(fā)表于 06-25 17:23
?4981次閱讀
MAX9686模擬比較器
MAX9686-signal/dual very fast TTL output comparator模擬TTL輸出比較器
發(fā)表于 12-01 11:47
?8次下載
Comparable和Comparator分析比較
的對象可以用作有序映射(如TreeMap)中的鍵或有序集合(TreeSet)中的元素,而不需要指定比較器。 Comparable 定義 Comparable 接口僅僅只包括一個函數,它
發(fā)表于 09-27 14:49
?0次下載
利用比較器電路方便地轉換電平和極性,use comparator circuit to convert electric polarity
利用比較器電路方便地轉換電平和極性,use comparator circuit to convert electric polarity
關鍵字:比較
MSP430FR6972的Comparator E比較器模塊的使用
最近做一個拓撲識別模塊用到了MSP430的比較器(Comparator E),這個比較器還是蠻好用的,支持多個參考,支持
發(fā)表于 12-16 16:55
?10次下載
比較器芯片和運放電路的區(qū)別
比較器芯片和運放電路的區(qū)別? 比較器芯片和運放電路都是電路中常用的模擬電路元件。雖然它們在外形和使用方法上有些相似,但它們在工作原理、應用范
比較器和運放的區(qū)別 比較器和運放的功能是否相同,能相互代替?
比較器和運放的區(qū)別 比較器和運放的功能是否相同,能相互代替? 比較
評論