2017-02-09 6 views
-3

ArryListには(name + "\ n" + phoneNumber)が含まれていますので、名前にリストが含まれているかどうか確認したいですか?私はこのコードを使用しcontains()をサブ文字列で使用する方法

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

が、私は、私は

と感謝

+0

'' Set''を使うと、値がすでに存在するかどうかを確認する必要はありません。新しい値を追加するだけです。私はこの部分を理解していません: "含まれている部分文字列を使用する方法は、私はそれから名前を取得する" - あなたはここで何も得ていない。 '' Set''の値のすべてをループし、そのうちの1つが新しい名前で始まるかどうかを調べることができます。 – f1sh

答えて

1

リストに追加したい名前とそれを含むように、それから、名前だけを取得するように含まれている中で部分文字列を使用する方法ArrayListのデータを(name + "\ n" + phoneNumber)、 という名前で追加しないでください。nameとphoneNumberという2つの属性を持つクラスを作成し、そのクラスのオブジェクトを作成して両方の属性を設定し、そのオブジェクトをArrayListに追加します。

これは正しい方法であり、問​​題も解決されます。

+0

これを追加してみましょう。クラスには、名前と番号を2行にしたい文字列を生成する 'toString'メソッドがあります。 –

+0

連絡先リストに指定された名前のオブジェクトが含まれているかどうかをチェックする方法については、[オブジェクトのセットにこの属性を持つオブジェクトが含まれているかどうかを確認する]の回答からインスピレーションを得ることができます(http://stackoverflow.com/questions/42086329/object-with-this-attributeを含むobject-check-if-if-setのチェック)。 –

+0

クラスのequalsメソッドとhashcodeメソッドをオーバーライドするだけで、phoneNumberを比較するcontainsメソッドを使用できます。 –

関連する問題