1 回答

TA貢獻1765條經驗 獲得超5個贊
現在還有另一個問題我得到了重復數據,所以為了解決這個問題,我決定創建一個哈希集并將我的對象存儲在其中,但我仍然在哈希集中獲得重復數據
您將獲得重復數據,因為您正在添加Set不同類型的對象Model。Model集合中的每個對象在內存中都有不同的地址,這就是為什么集合中的每個對象都不同的原因。這Set是一個擴展 Collection 的接口,因此當使用這樣的集合時,除非您指定它,否則您無法知道對象中的字段是否與另一個對象中的另一個字段具有相同的值。
aSet和 a之間有很大的區別List。如果您正在使用:
List<String> list = new ArrayList<>();
list.add("user2426691");
list.add("user2426691");
list.add("user2426691");
Log.d(TAG, list.toString());
您會看到您的列表將包含三個重復的名稱。但是,如果您Set在以下代碼行中使用了 a of 字符串:
Set<String> set = new HashSet<>(list);
Log.d(TAG, set.toString());
你會注意到你的Set遺囑只包含一個元素(沒有重復)。
要解決您的問題,您可以使用 aList或 aSet但您需要根據條件填充所需的對象集合,這可能是:
if(!model.getName().equals("someName")) {
list.add(model);
}
添加回答
舉報