淺談Java中幾個(gè)常用集合添加元素的效率
初始化需要進(jìn)行比較的集合,統(tǒng)一增加10萬(wàn)個(gè)元素,獲取整個(gè)過(guò)程的執(zhí)行時(shí)間。
1、List集合增加元素
private static void testList() { List<Integer> list = new ArrayList<Integer>(); long startTime = System.currentTimeMillis(); // 獲取開(kāi)始時(shí)間 for (int i = 0; i < 100000; i++) { list.add(i); } long endTime = System.currentTimeMillis(); // 獲取結(jié)束時(shí)間 System.out.println("List添加元素程序運(yùn)行時(shí)間為:" + (endTime - startTime) + "ms"); // 輸出程序運(yùn)行時(shí)間 }
程序輸出:
List添加10萬(wàn)個(gè)元素程序運(yùn)行時(shí)間為:8ms
2、Set集合增加元素
private static void testSet() { Set<Integer> set = new HashSet<Integer>(); long startTime = System.currentTimeMillis(); // 獲取開(kāi)始時(shí)間 for (int i = 0; i < 100000; i++) { set.add(i); } long endTime = System.currentTimeMillis(); // 獲取結(jié)束時(shí)間 System.out.println("Set添加10萬(wàn)個(gè)元素程序運(yùn)行時(shí)間為:" + (endTime - startTime) + "ms"); // 輸出程序運(yùn)行時(shí)間 }
程序輸出:
Set添加10萬(wàn)個(gè)元素程序運(yùn)行時(shí)間為:17ms
3、LinkedList集合增加元素
private static void testLinkedList() { List<Integer> list = new LinkedList<Integer>(); long startTime = System.currentTimeMillis(); // 獲取開(kāi)始時(shí)間 for (int i = 0; i < 100000; i++) { list.add(i); } long endTime = System.currentTimeMillis(); // 獲取結(jié)束時(shí)間 // 輸出程序運(yùn)行時(shí)間 System.out.println("LinkedList添加10萬(wàn)個(gè)元素程序運(yùn)行時(shí)間為:" + (endTime - startTime) + "ms"); }
程序輸出:
LinkedList添加10萬(wàn)個(gè)元素程序運(yùn)行時(shí)間為:8ms
4、TreeSet集合增加元素
private static void testTreeSet() { Set<Integer> set = new TreeSet<Integer>(); long startTime = System.currentTimeMillis(); // 獲取開(kāi)始時(shí)間 for (int i = 0; i < 100000; i++) { set.add(i); } long endTime = System.currentTimeMillis(); // 獲取結(jié)束時(shí)間 // 輸出程序運(yùn)行時(shí)間 System.out.println("TreeSet添加10萬(wàn)個(gè)元素程序運(yùn)行時(shí)間為:" + (endTime - startTime) + "ms"); }
程序輸出:
TreeSet添加10萬(wàn)個(gè)元素程序運(yùn)行時(shí)間為:40ms
總結(jié):在不考慮去重和排序的情況下,以上幾個(gè)常用集合的執(zhí)行效率排序?yàn)椋篈rrayList >= LinkedList > HashSet > TreeSet
5、HashMap集合增加元素
private static void testHashMap() { Map<Integer, Object> hashMap = new HashMap<Integer, Object>(); long startTime = System.currentTimeMillis(); // 獲取開(kāi)始時(shí)間 for (int i = 0; i < 100000; i++) { hashMap.put(i, "test"); } long endTime = System.currentTimeMillis(); // 獲取結(jié)束時(shí)間 // 輸出程序運(yùn)行時(shí)間 System.out.println("HashMap添加10萬(wàn)個(gè)元素程序運(yùn)行時(shí)間為:" + (endTime - startTime) + "ms"); }
程序輸出:
HashMap添加10萬(wàn)個(gè)元素程序運(yùn)行時(shí)間為:17ms
6、TreeMap集合增加元素
private static void testTreeMap() { Map<Integer, Object> treeMap = new TreeMap<Integer, Object>(); long startTime = System.currentTimeMillis(); // 獲取開(kāi)始時(shí)間 for (int i = 0; i < 100000; i++) { treeMap.put(i, "test"); } long endTime = System.currentTimeMillis(); // 獲取結(jié)束時(shí)間 // 輸出程序運(yùn)行時(shí)間 System.out.println("TreeMap添加10萬(wàn)個(gè)元素程序運(yùn)行時(shí)間為:" + (endTime - startTime) + "ms"); }
程序輸出:
TreeMap添加10萬(wàn)個(gè)元素程序運(yùn)行時(shí)間為:40ms
總結(jié):在不考慮排序的情況下,HashMap的執(zhí)行效率高于TreeMap:HashMap > TreeMap。
以上這篇淺談Java中幾個(gè)常用集合添加元素的效率就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Windows下apache ant安裝、環(huán)境變量配置教程
這篇文章主要介紹了Windows下apache ant安裝、環(huán)境變量配置教程,ANT的安裝很簡(jiǎn)單,本文同時(shí)講解了驗(yàn)證安裝是否成功的方法和使用方法實(shí)例,需要的朋友可以參考下2015-06-06Javaweb 500 服務(wù)器內(nèi)部錯(cuò)誤的解決
這篇文章主要介紹了Javaweb 500 服務(wù)器內(nèi)部錯(cuò)誤的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09springboot+vue制作后臺(tái)管理系統(tǒng)項(xiàng)目
本文詳細(xì)介紹了后臺(tái)管理使用springboot+vue制作,以分步驟、圖文的形式詳細(xì)講解,大家有需要的可以參考參考2021-08-08淺談Java循環(huán)中的For和For-each哪個(gè)更快
本文主要介紹了淺談Java循環(huán)中的For和For-each哪個(gè)更快,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Jpa中Specification的求和sum不生效原理分析
這篇文章主要為大家介紹了Jpa中Specification的求和sum不生效原理示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Java Scanner的使用和hasNextXXX()的用法說(shuō)明
這篇文章主要介紹了Java Scanner的使用和hasNextXXX()的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Java 高并發(fā)二:多線程基礎(chǔ)詳細(xì)介紹
本文主要介紹Java 高并發(fā)多線程的知識(shí),這里整理詳細(xì)的資料來(lái)解釋線程的知識(shí),有需要的學(xué)習(xí)高并發(fā)的朋友可以參考下2016-09-09Spring boot 默認(rèn)靜態(tài)資源路徑與手動(dòng)配置訪問(wèn)路徑的方法
這篇文章主要介紹了Spring boot 默認(rèn)靜態(tài)資源路徑與手動(dòng)配置訪問(wèn)路徑的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05