Listに入っている内容を一意にする

ListはMapと違いキーという概念が無いので、同じ内容でもaddすることができます。
一意にしたいときはListの内容をHashSetに突っ込むという方法があります。


サンプルコードは以下の通りです。

import java.util.*;

public class UniqueListTest {
    public static void main(String[] args) {
        List<String> nonUniqueList = new ArrayList<String>();
        nonUniqueList.add("a");
        nonUniqueList.add("b");
        nonUniqueList.add("c");
        nonUniqueList.add("a");

        for (String s : nonUniqueList) {
            System.out.println("nonUniqueList element = " + s);
        }

        Set<String> set = new HashSet<String>();
        set.addAll(nonUniqueList);
        List<String> uniqueList = new ArrayList<String>();
        uniqueList.addAll(set);

        for (String s : uniqueList) {
            System.out.println("uniqueList element = " + s);
        }
    }
}

実行結果は以下の通りです。

C:\tmp>javac UniqueListTest.java
C:\tmp>java UniqueListTest
nonUniqueList element = a
nonUniqueList element = b
nonUniqueList element = c
nonUniqueList element = a
uniqueList element = b
uniqueList element = c
uniqueList element = a