テキストファイルからデータを読み取るので、次のようになります。
ジョン メアリー ジョン リーズ
上記のように、ファイル出力には3つの一意の値しかないため、ArrayListで3つの一意の要素を取得する必要があります。
HashTableを使用して情報を追加し、そのデータをリストにコピーするだけです。他の解決策はありますか?
なぜList
に保存する必要があるのですか?実際にデータを注文する必要があるか、インデックスベースのルックアップをサポートしていますか?
Set
にデータを保存することをお勧めします。順序が重要でない場合は、HashSet
を使用する必要があります。ただし、順序を保持する場合は、LinkedHashSet
を使用できます。
重複を含むList
があり、なしでList
が必要な場合は、次のようにします。
List<String> newList = new ArrayList<String>(new HashSet<String>(oldList));
つまり、古いリストをセットにラップして重複を削除し、そのセットを再度リストにラップします。
追加する前に list.contains() を確認できます。
if(!list.contains(value)) {
list.add(value);
}
それは明らかだと思いました!ただし、HashSetにアイテムを追加してから、このセットからリストを作成する方が効率的です。
リストの代わりにset
を使用します。こちらをご覧ください: Java Collections Tutorials そして、ここのセットについては特に: Java Sets Tutorial
要するに、セットには何かの1つが含まれています。完璧:)
ここに私がそれを解決した方法があります:
import groovy.io.*;
def arr = ["5", "5", "7", "6", "7", "8", "0"]
List<String> uniqueList = new ArrayList<String>(new HashSet<String>( arr.asList() ));
System.out.println( uniqueList )