1 回答

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