2017-02-09 68 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。 –