實現比較器的方法有兩種:
實現comparable,在比試中用的比較少。
人為的定義對類的比較,去實現comparator介面;
我們定義乙個學生類,定義他的name,id,age屬性,通過id和age對他進行排序,這時我們用比較器對其進行排序;前面元素減去後面元素如果為負數,則前面小排在前面。反之,則大的排在前面,為降序。
public class code_11_comparator
}public static class idascendingcomparator implements comparator
}public static class iddescendingcomparator implements comparator
}public static class ageascendingcomparator implements comparator
}public static class agedescendingcomparator implements comparator
}public static void print(student students)
system.out.println("********************===");
}public static void main(string args);
arrays.sort(students,new idascendingcomparator());
print(students);
arrays.sort(students,new iddescendingcomparator());
print(students);
arrays.sort(students,new ageascendingcomparator());
print(students);
arrays.sort(students,new agedescendingcomparator());
print(students);
//優先順序佇列(小頂堆。 idascendingcomparator()是從小到大排序)
priorityqueueheap=new priorityqueue<>(new idascendingcomparator());
heap.add(student1);
heap.add(student2);
heap.add(student3);
while(!heap.isempty())
//紅黑樹
system.out.println("紅黑樹*****===");
treesettreeset=new treeset<>(new iddescendingcomparator());
treeset.add(student1);
treeset.add(student2);
treeset.add(student3);
while (!treeset.isempty())
}}
排序演算法中比較函式的運用
假如我們有乙個 如下,1,5 2,3 3,7 需要根據第二例排序。我們應該怎麼辦呢?這裡使用python作為範例,其他語言提供類似的泛型程式設計方法。對這個資料排序可以寫出如下 def customcmp a,b return cmp a 1 b 1 mylist a 1,5 b 2,3 c 3,7...
HEVC中比較耗時的模組
先引用unix程式設計藝術第一章的一段話 rob pike,最偉大的c語言大師之一,在 nos on c programming 中從另乙個稍微不同的角度表述了unix的哲學 原則1 你無法判定程式會在什麼地方耗費執行時間。瓶頸經常出現在想不到的地方,所以別急於亂找個地方改 除非你已經證實那兒就是瓶...
Java 中 比較的是什麼?
public class arraytest 顯然,儘管 a 與 b 物件的值相同,但是在記憶體中的位址是不同的,即兩個物件是不一樣的。再看乙個例子 public class arraytest 這是因為常量池的存在。而執行時常量池其實是屬於方法區的一部分。通俗的說,c 和 d 其實都是都是指向 a...