1. 程式人生 > >java幾種集合遍歷速度對比(部落格園遷移)

java幾種集合遍歷速度對比(部落格園遷移)

  對集合操作進行簡單的進行測試速度,資料量20w,對map,list,set,array,queue進行遍歷測試時間對比。

  先貼上一段對這些集合的介紹:

1.1 Set介面  

  1. 存入Set的每個元素都必須是唯一的,Set介面不保證維護元素的次序;
  2. HashSet類: 為快速查詢設計的Set,存入HashSet的物件必須定義hashCode(),它不保證集合的迭代順序;  
  3. LinkedHashSet類: 具有HashSet的查詢速度,且內部使用連結串列維護元素的順序(插入的次序)。

1.2 List介面

  1.  List按物件進入的順序儲存物件,不做排序等操作;
  2.  ArrayList類:由陣列實現的List,允許對元素進行快速隨機訪問,但是向List中間插入與移除元素的速度很慢;
  3.  LinkedList類: 對順序訪問進行了優化,向List中間插入與刪除的開銷並不大,隨機訪問則相對較慢。

1.3 Queue介面

  1. Queue用於模擬佇列這種資料結構,實現“FIFO”等資料結構。通常,佇列不允許隨機訪問佇列中的元素。
  2. ArrayDeque類:為Queue子介面Deque的實現類,陣列方式實現。
  3. LinkedList類:是List介面的實現類,同時它也實現了Deque介面(Queue子介面)。因此它也可以當做一個雙端佇列來用,也可以當作“棧”來使用。

1.4 Map介面

  1.  新增、刪除操作put/remove/putAll/clear
  2.  查詢操作get/containsKey/containsValue/size/isEmpty
  3.  檢視操作keySet/values/entrySet
  4.  Map.Entry介面(Map的entrySet()方法返回一個實現Map.Entry介面的物件集合)  getKey/getValue/setValue

下面是測試程式碼:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

相關推薦

java集合速度對比部落遷移

  對集合操作進行簡單的進行測試速度,資料量20w,對map,list,set,array,queue進行遍歷測試時間對比。   先貼上一段對這些集合的介紹: 1.1 Set介面   存入Set的每個元素都必須是唯一的,Set介面不保證維護元素的次序

關於多執行緒的點總結部落遷移

 關於執行緒 synchronized關鍵字:  不能用在變數和建構函式上  放在方法上面,鎖定的是物件,放在靜態方法上鎖定的是類  不應該鎖定常量,比如String等型別因為程式中這個物件難免還會用

Map集合的方式以HashMap為例

color reac pri 循環 next code 方式 new 利用 環境:jdk1.8 HashMap的遍歷方式有多種,下面將會一一列出。 首先我們先在HashMap中添加幾個鍵值對。 HashMap<Integer, String> map = ne

java之Map集合方法

package cn.com.javatest.collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; /** * java之Map集合遍歷幾種方法 * * @author:

Java之List集合方法

package cn.com.javatest.collection; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * Java之List集合遍歷的幾種方法 * * @au

Java集合方法

(一):Map long num1 = 100,num2 = 200; String str1="hello",str2="world"; Map<Long, String> map = new HashMap<>(); map.p

Java中List集合的三方式

asn tex iter for nbsp next next() ray string 首先創建一個List集合: List<String> list = new ArrayList<String>();list.add("name"); list

ArrayList和LinkedList的迴圈方式及效能對比分析 主要介紹ArrayList和LinkedList這兩list的五迴圈方式,各種方式的效能測試對比,根據ArrayLis

主要介紹ArrayList和LinkedList這兩種list的五種迴圈遍歷方式,各種方式的效能測試對比,根據ArrayList和LinkedList的原始碼實現分析效能結果,總結結論。 通過本文你可以瞭解(1)List的五種遍歷方式及各自效能 (2)foreach及Iterator的實現 (3)加

JS陣列方式和效能分析對比

JS陣列遍歷的幾種方式 JS陣列遍歷,基本就是for,forin,foreach,forof,map等等一些方法,以下介紹幾種本文分析用到的陣列遍歷方式以及進行效能分析對比 第一種:普通for迴圈 程式碼如下: for(j = 0; j < arr.length; j++) { }

Java 實例 - 集合

HA rgs 類型 bsp .com imp value list hset List與Set類型集合的遍歷 1 import java.util.ArrayList; 2 import java.util.HashSet; 3 import java.util.I

java雙列集合

雙列集合遍歷-1-根據鍵獲取值: HashMap<String, String> map = new HashMap<>(); map.put("白起", "WhiteKiller"); map.put("妲己","狐狸"); map.put("露娜", "紫

java foreach與for效率對比

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">由於本人在準備秋招,所以在看到foreach和for那個遍歷效率更高的問

ArrayList和LinkedList的迴圈方式及效能對比分

轉自:http://www.trinea.cn/android/arraylist-linkedlist-loop-performance/ 主要介紹ArrayList和LinkedList這兩種list的五種迴圈遍歷方式,各種方式的效能測試對比,根據Arra

設計模式間的對比工廠/Builder&橋接/策略~

1.工廠 vs 抽象工廠工廠方法模式: 用來加工、生產物件的類。比如說我想要一個汽車類,但是我總不能現場給你造個車出來對吧?於是我找到工廠類,然後工廠幫我把發動機型號選好,輪胎裝好,油漆噴好,然後把車給我去做其他跟車相關的具體操作。 抽象工廠類,可以派生出多個具體工廠類。 還

開源SIP協議棧對比文章很早了,僅供參考

幾種開源SIP協議棧對比 2006-12-05 15:49   基於SIP的開發的話,基本還是使用開源的協議棧的,當然也有牛的公司和單位是自己開發協議棧的,不過並不一定比開源的好用,不過可能使用在特定場合時,會有一定優勢吧。   在以前開發UA時,我用的

iOS迴圈 效能對比for 、forin、NSEnumerator.....

前段時間學習了NSEnumerator的遍歷方法 感覺很好用 於是總結一下iOS生涯當中 所用到的遍歷。好奇的簡單了做了一個效率對比。沒想到最NB的居然是它。1、for迴圈for迴圈不做過多介紹,入門常用、可以正序、逆序查詢資料。也常用於建立九宮格。貼兩行程式碼自己體會。//

流行Webservice框架效能對比轉載、拼接

1摘要 開發webservice應用程式中離不開框架的支援,當open-open網站列舉的就有很多種,這對於開發者如何選擇帶來一定的疑惑。效能Webservice的關鍵要素,不同的框架效能上存在較大差異,而當前在官方網站、網路資料中可以方便的找到各自框架的介紹,但是很少有

求斐波那契數列第n位的實現方式及效能對比c#語言

在每一種程式語言裡,斐波那契數列的計算方式都是一個經典的話題。它可能有很多種計算方式,例如:遞迴、迭代、數學公式。哪種演算法最容易理解,哪種演算法是效能最好的呢? 這裡給大家分享一下我對它的研究和總結:下面是幾種常見的程式碼實現方式,以及各自的優缺點、效能對比。 Iteration using Syst

Python學習筆記之目錄檔案遞迴和walk()

python中遍歷指定目錄下所有的檔案和資料夾,包含多級目錄,有兩種方法,一種是通過遞迴思想去遍歷,另一種是os模組的walk()函式 要列出目錄結構 一.遞迴方法 #coding:utf-8 import os a

二叉樹的層序詳細講解附完整C++程式

1 說明   二叉樹的層序遍歷是面試經常會被考察的知識點,甚至要求當場寫出實現過程。筆者先後被騰訊和滴滴面試官問過這個問題,騰訊面試官是讓稱述整個實現過程,本人自信滿滿的說出來了,所以也沒有對具體實