java 集合類中的物件如何比較

2021-06-05 10:27:36 字數 836 閱讀 5888

1 list 集合: 被比較的物件要重寫equals()方法, 呼叫list中contains()方法,就是用equals()方法比較的.

list 集合 (允許重複元素,允許空值)

2 hashset集合(不允許重複元素,允許空值): 被比較的物件要重寫hashcode()方法和重寫equals()方法, 兩個都要.

3 treeset集合.(不允許重複元素):

方法一:被比較的物件(如學生類)實現comparable介面,重寫compareto()方法.--(不允許空值)

方法二:treeset的構造方法,傳入comparator介面的實現類,他是重寫了compare()方法.--(允許空值)

4 hashmap集合: 與hashset情況一樣.

5 treemap集合: 與treeset情況一樣. 

6  順便說一下, 對list排序可用collections類的sort()方法.要用到comparable或comparator介面.

list:arraylist,vector,linkedlist,其中vetctor執行緒同步,linkedlist插刪翻遍

基本上list都是基於array的;裡面的元素都可以重複;

set:hashset,treeset;set不能夠重複,set是基於map的;treeset是排序的

list和set是繼承collection介面的,map不是

map:hashtable,hashmap,treemap;hashtable是執行緒同步的,map的key不能夠重複,value可以;treemap是排序的

另外,沒記錯的話,list,set,map都是可以使用collections。sort()排序的

java中物件集合的比較與排序

現種方式。一是物件本身直接實現comparable介面 class student implements comparable 另一種是借助比較器物件,這個比較器物件針對指定的類來定義。並實現comparator介面 class student 最後借助conections.sort 或arrayl...

java中的物件比較

public class intergererror private static boolean compare integer num1,integer num2 你的答案是什麼,返回一定是true?哈哈,再思考一下。這段 的返回值為false,這就有些不明白了,為什麼會這樣,既然用的是或,那不...

Java中的物件比較

首先明確一點 永遠是在比較位址,而equals是比較內容的值。當我們書寫這樣的 int a 10 int b 10 jvm 其實是在棧 棧幀中的操作棧?中查詢 3 這個常量,如已經存在了,變數 a 的引用就指向存放 3 的位址,如果沒有,就建立乙個。因此給基本資料型別的變數賦值時,若它們的值相等,那...