2017-02-09 55 views
-3

我有一個ArryList其中有(名稱+「\ n」+ phoneNumber),所以我想看看名稱是否包含列表?我用這個代碼如何使用contains()與子字符串

HashSet<String> set = new HashSet<String>(ContactsList); 
if (set.contains(name)) 
{} 
else 
{ 
    ContactsList.add(name+"\n"+phoneNumber+"\n"); 
} 

,但如何在包含,所以我得到的只是從它的名字與我想將它添加到列表中

,並感謝

+0

如果使用「Set」,則不需要檢查值是否已經存在。只需添加新的值。我不明白這個部分:「如何在包含中使用子字符串,所以我只能從中得到名稱」 - 你在這裏沒有任何東西。你可以遍歷所有的Set值,看看它們中的一個是否以一個新名字開始。 – f1sh

回答

1

名稱包含它使用串不要將ArrayList中的數據添加爲(名稱+「\ n」+ phoneNumber), 創建一個包含2個屬性名和phoneNumber的類,然後創建該類的對象,設置兩個屬性並將該對象添加到ArrayList中。

這是正確的做法,您的問題也將得到解決。

+0

我想補充一句,這個類可以有一個'toString'方法,它可以在兩行上生成你想要的名字和數字的字符串。 –

+0

有關如何檢查您的聯繫人列表是否包含具有給定名稱的對象,可以從[檢查對象集合是否包含具有此屬性的對象]的答案中獲取靈感(http://stackoverflow.com/questions/42086329 /籤如果 - 組 - 的對象-含有-一個對象與 - 這個屬性)。 –

+0

只需重寫類中的equals和hashcode方法,然後就可以使用contains方法來比較phoneNumber。 –

相關問題