初始化需要进行比较的集合,统一增加10万个元素,获取整个过程的执行时间。
1、List集合增加元素
1 private static void testList() { 2 3 Listlist = new ArrayList (); 4 5 long startTime = System.currentTimeMillis(); // 获取开始时间 6 for (int i = 0; i < 100000; i++) { 7 8 list.add(i); 9 10 }11 long endTime = System.currentTimeMillis(); // 获取结束时间12 13 System.out.println("List添加元素程序运行时间为:" + (endTime - startTime) + "ms"); // 输出程序运行时间14 15 }
程序输出:
List添加10万个元素程序运行时间为:8ms
2、Set集合增加元素
1 private static void testSet() { 2 3 Setset = new HashSet (); 4 5 long startTime = System.currentTimeMillis(); // 获取开始时间 6 for (int i = 0; i < 100000; i++) { 7 8 set.add(i); 9 10 }11 long endTime = System.currentTimeMillis(); // 获取结束时间12 13 System.out.println("Set添加10万个元素程序运行时间为:" + (endTime - startTime) + "ms"); // 输出程序运行时间14 15 }
程序输出:
Set添加10万个元素程序运行时间为:17ms
3、LinkedList集合增加元素
1 private static void testLinkedList() { 2 3 Listlist = new LinkedList (); 4 5 long startTime = System.currentTimeMillis(); // 获取开始时间 6 for (int i = 0; i < 100000; i++) { 7 8 list.add(i); 9 10 }11 long endTime = System.currentTimeMillis(); // 获取结束时间12 13 // 输出程序运行时间14 System.out.println("LinkedList添加10万个元素程序运行时间为:" + (endTime - startTime) + "ms");15 16 }
程序输出:
LinkedList添加10万个元素程序运行时间为:8ms
4、TreeSet集合增加元素
1 private static void testTreeSet() { 2 3 Setset = new TreeSet (); 4 5 long startTime = System.currentTimeMillis(); // 获取开始时间 6 for (int i = 0; i < 100000; i++) { 7 8 set.add(i); 9 10 }11 long endTime = System.currentTimeMillis(); // 获取结束时间12 13 // 输出程序运行时间14 System.out.println("TreeSet添加10万个元素程序运行时间为:" + (endTime - startTime) + "ms");15 16 }
程序输出:
TreeSet添加10万个元素程序运行时间为:40ms
总结:在不考虑去重和排序的情况下,以上几个常用集合的执行效率排序为:ArrayList >= LinkedList > HashSet > TreeSet
5、HashMap集合增加元素
1 private static void testHashMap() { 2 3 MaphashMap = new HashMap (); 4 5 long startTime = System.currentTimeMillis(); // 获取开始时间 6 for (int i = 0; i < 100000; i++) { 7 hashMap.put(i, "test"); 8 } 9 10 long endTime = System.currentTimeMillis(); // 获取结束时间11 12 // 输出程序运行时间13 System.out.println("HashMap添加10万个元素程序运行时间为:" + (endTime - startTime) + "ms");14 15 }
程序输出:
HashMap添加10万个元素程序运行时间为:17ms
6、TreeMap集合增加元素
1 private static void testTreeMap() { 2 3 MaptreeMap = new TreeMap (); 4 5 long startTime = System.currentTimeMillis(); // 获取开始时间 6 for (int i = 0; i < 100000; i++) { 7 treeMap.put(i, "test"); 8 } 9 10 long endTime = System.currentTimeMillis(); // 获取结束时间11 12 // 输出程序运行时间13 System.out.println("TreeMap添加10万个元素程序运行时间为:" + (endTime - startTime) + "ms");14 }
程序输出:
TreeMap添加10万个元素程序运行时间为:40ms
总结:在不考虑排序的情况下,HashMap的执行效率高于TreeMap:HashMap > TreeMap。