package testLocal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashSet; public class TestHashSet { private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS"); private static final int LOOP_COUNT = 100000; public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ HashSet<Integer> set = new HashSet<Integer>(); ArrayList<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < LOOP_COUNT; i++) { list.add(i); } log("ArrayList start"); for (int iList : list) { if (list.contains(iList)) { // Nothing is done. } } log("ArrayList end"); for (int i = 0; i < LOOP_COUNT; i++) { set.add(i); } log("HashSet start"); for (int iSet : set) { if (set.contains(iSet)) { // Nothing is done. } } log("HashSet end"); } public static void log(final String str) { System.out.println(sdf.format(new Date().getTime()) + " " + str); } }
结果:
2016/03/18 13:35:52.492 ArrayList start
2016/03/18 13:36:14.634 ArrayList end
2016/03/18 13:36:14.703 HashSet start
2016/03/18 13:36:14.710 HashSet end
很显然HashSet比ArrayList用的时间少的多