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