「ダイナミック」接尾辞でArrayListにユニークな要素を追加します。

user2557930:

私は、スタック内の同様の質問を見てきましたが、それはCでのファイルの状況だった:私は要素が電子mail.For例である文字列のArrayListのを、持っています:

[email protected]
[email protected]
[email protected]

私は1つの非常に重要な漁獲量とそのリストに新しい電子メールを追加する関数/メソッドを書きたいです!

たとえば、私は、「[email protected]」を追加したい場合は、この方法は、ArrayListを通過しなければならないと「[email protected]」すでに存在する場合、「[email protected]は」それまで、などが存在する場合、それはcheckesその後、見つかった空き番号のサフィックス、およびそれが「[email protected]」を追加する必要があり、私たちの例をit.In追加します。

問題は私がなど3つの方法、ちょうどdoesntの表情の[OK]をクリックしてコードの醜い150行で書いたものを、いくつかの短いとエレガントなsollutionを、したいということです。素敵なアルゴリズムや、おそらく高度なコレクションfeauteと誰もがそれを達成するには?

感謝

アイルトン:

あなたはこのように、追加する前に、あなたのリストをチェックできます。

public void addWithSuffix(String email) {
    if(list.contains(email)) {
        int number = 0;
        String[] tmp = email.split("@");

        for(; list.contains(tmp[0] + number + "@" + tmp[1]); number++){}

        list.add((tmp[0] + number + "@" + tmp[1]));
    }
    else {
        list.add(email);
    }
}

しかし、当然のことながら、電子メールはそれを追加しようとする前に有効であることを確認するために、あなたの入力を検証します。そして、私はまた、スワッピングをお勧めしたいListのためにSet

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=224879&siteId=1