14

データを含む 2 つのテキスト ファイルがあります。これらのファイルを で読み取り、ファイルBufferReaderごとに 1 列のデータをList<String>.

Listそれぞれに重複データがありますが、2 番目の重複データと対峙するには、最初に一意のデータが必要Listです。

から一意の値を取得するにはどうすればよいListですか?

4

4 に答える 4

11

を に変換ArrayListHashSetます。

List<String> listWithDuplicates; // Your list containing duplicates
Set<String> setWithUniqueValues = new HashSet<>(listWithDuplicates);

後でなんらかの理由でセットをリストに戻したい場合は、そうすることができますが、ほとんどの場合、その必要はありません。

List<String> listWithUniqueValues = new ArrayList<>(setWithUniqueValues);
于 2014-10-01T22:58:06.010 に答える
0

解決策が他の人に役立つ可能性があることに気づきました。最初に、BufferReader からの重複した値が入力されます。

ArrayList<String> first = new ArrayList<String>();  

一意の値を抽出するには、down のような新しい ArrayList を作成するだけです。

ArrayList<String> otherList = new ArrayList<>();

    for(String s : first) {
        if(!otherList.contains(s))
            otherList.add(s);
    }

インターネットの多くの投稿は、Arraylist を List 、 Set 、 HashTable 、または TreeSet に割り当てるように話しています。理論の違いと、実際に使用するのに最適なものを説明できる人はいますか? お時間をいただきありがとうございます。

于 2014-10-01T23:10:27.783 に答える