我是怎么個需求現(xiàn)在,我使用了一個HashSet來進(jìn)行去重操作,需求是要當(dāng)add的時候失敗,就是集合里面已經(jīng)有這個值了,我需要把現(xiàn)在這個add失敗的值放進(jìn)去,把之前add的那個刪掉。舉個栗子:有數(shù)據(jù)a,b,c,a三個值Set s = new HashSet();
s.add(a); // 后加入的要頂替調(diào)我,我需要被刪除
s.add(b);
s.add(c);
s.add(a); // 這個添加會失敗,但是我需要將這個加入到集合中,頂替之前的這里的abc其實是一個對象,我這里用abc表示了,請問怎么實現(xiàn)這個?因為目前我沒法從set中找到具體某個值并刪除他(沒用遍歷是覺得會慢,因為是通過重寫equals來判斷的)
1 回答

月關(guān)寶盒
TA貢獻(xiàn)1772條經(jīng)驗 獲得超5個贊
if s.contains(a) == True{
s.remove(a)
s.add(a)
}
else{
add(a)
}
在添加操作執(zhí)行前先判斷其值是否在hashset中存在,存在就移除再添加;不存在就直接添加
(不知道你做此類操作是要做什么······是要獲取先后順序?)
添加回答
舉報
0/150
提交
取消