1. 程式人生 > >ArrayList和LinkedList的幾種迴圈遍歷方式及效能對比分析 主要介紹ArrayList和LinkedList這兩種list的五種迴圈遍歷方式,各種方式的效能測試對比,根據ArrayLis

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

主要介紹ArrayList和LinkedList這兩種list的五種迴圈遍歷方式,各種方式的效能測試對比,根據ArrayList和LinkedList的原始碼實現分析效能結果,總結結論
通過本文你可以瞭解(1)List的五種遍歷方式及各自效能 (2)foreach及Iterator的實現 (3)加深對ArrayList和LinkedList實現的瞭解。
閱讀本文前希望你已經瞭解ArrayList順序儲存和LinkedList鏈式的結構,本文不對此進行介紹。

1. List的五種遍歷方式
下面只是簡單介紹各種遍歷示例(以ArrayList為例),各自優劣會在本文後面進行分析給出結論。
(1) for each迴圈

Java
1234List<Integer>list=newArrayList<Integer>();for(Integerj:list){// use j}

(2) 顯示呼叫集合迭代器

Java
1 2 3 4 List<Integer>list=newArrayList<Integer>(); for(Iterator<Integer>iterator=list.iterator();iterator.hasNext();){ iterator
.next(); }

Java
12345List<Integer>list=newArrayList<Integer>();Iterator<Integer>iterator=list.iterator();while(iterator.hasNext()){iterator.next();}

(3) 下標遞增迴圈,終止條件為每次呼叫size()函式比較判斷

Java
1 2 3 4 List<Integer>
list=newArrayList<Integer>(); for(intj=0;j<list.size()

相關推薦

ArrayListLinkedList迴圈方式效能對比分析 主要介紹ArrayListLinkedListlist迴圈方式各種方式效能測試對比根據ArrayLis

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

軟體工程之軟體測試軟體維護⑥(測試計劃測試分析報告)

      在軟體開發過程中,特別是在開發大型軟體系統的過程中,面對的問題是極其複雜的, 因此,在軟體生命週期的每個階段就不可避免地會產生差錯。應該在每個階段結束之前通過嚴格的技術審查,儘可能早地發現並糾正差錯。但是,審查並不能發現所有錯誤,此外在編碼過程中還不可避免地

用 dotTrace 進行效能分析各種不同效能分析選項的含義用途

對 .NET 程式進行效能分析,dotTrace 能應對絕大多數的場景。在開啟一個程序進行效能分析之前,我們會看到一些效能分析選項(Profiler Options)。本文將介紹這幾個選項的含義,並用實際的例子來說明其用途。 本文內容

在保證測試質量的情況下如何有效降低測試輪次縮短測試周期提升測試效率

1、讓整個研發團隊重視質量,質量不僅僅是測試的事,也是開發,產品的事,所有的人都對質量負責人產品:對需求說明要細緻開發:1、 不要出現修改一個bug 引出另一個bug , 修改bug不通過不完整的情況2、轉測試前自測要細緻,不要出現版本打回的情況, 打回一次,基本浪費測試團隊

躁動不安的年代你需要讀本好書(python爬蟲數據分析

req 陽光 nis ... requests delet das 大致 分享 當今社會,速度已經深入人心了,“快”成了大家默認的辦事境界,看機器上一件件飛一般傳遞著的產品,聽辦公室一族打電話時那種無人能及的語速......休閑的概念已日漸模糊,大家似乎都變成了在“快咒”控

JVM自帶性能分析工具介紹——jmapjhat

inf info weibo 介紹 oci mar style lan user 0L蛻投M口l形繃9http://huiyi.docin.com/sina_5847440681 RH姥胤1操士剮訊39鎂http://www.docin.com/sina_62699771

用戶賬戶組賬戶的的相關文件文件權限介紹

用戶賬戶和組賬戶的的相關文件及文件權限介紹 與用戶賬戶和組賬戶相關的文件: /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/default/useradd /etc/login.defs /etc/skel(Directory) /etc

資料庫持久化中的讀寫效能原理分析---基於儲存引擎索引原理

1.儲存引擎的型別 型別 功能 應用 hash 增刪改、隨機讀、順序掃描 Key-Value儲存系統  redis、memcached B-Tree 增刪改、隨機讀、順序掃描 關係型資料庫,MongoDB採用了B-Tree+lock-free, LSM

已解決:mysql無法遠端訪問10061錯誤各種方式授權後也無效(ubuntu 16.04LTS mysql 5.7.13)

先直接說解決方案 /etc/mysql/mysqld.conf.d/mysqld.cnf bind-address = 127.0.0.1 前面加# 變成 # bind-address = 127.0.0.1 sudo service mysql restart 5.5.7

ArrayListLinkedList迴圈方式效能對比分

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

C++ Vector方式效能對比

幾種容器遍歷方法 1.迭代器 for (std::vector<int>::iterator it = vecTest.begin(); it != vecTest.end(); ++it) { tempNum = *it; } 2.C++11 新增關鍵字auto f

【我的Java筆記】增強for迴圈 & ArrayList集合儲存自定義物件並方法

增強for迴圈 1.增強for迴圈的作用: 在集合中,增強for迴圈的作用是用來代替迭代器 2.優點:書寫格式簡單,程式碼量少 3.弊端:遍歷陣列或集合的時候,陣列物件或者集合物件不能為null(需加

資料結構實驗-C語言-二叉樹的建立前、中、後序遍歷的遞迴演算法非遞迴演算法求葉子結點數目求二叉樹深度判斷二叉樹是否相似求二叉樹左右子樹互換二叉樹層序遍歷的演算法判斷二叉樹是否是完全二叉樹

1.實驗目的 熟練掌握二叉樹的二叉連結串列儲存結構的C語言實現。掌握二叉樹的基本操作-前序、中序、後序遍歷二叉樹的三種方法。瞭解非遞迴遍歷過程中“棧”的作用和狀態,而且能靈活運用遍歷演算法實現二叉樹的其它操作。 2.實驗內容 (1)二叉樹的二叉連結串列的建立 (2)二叉樹的前、中、後

定義一個Map物件並打印出各元素的keyvalue

//建立HashMap 集合 泛型為 Person 類 HashMap<Person, String> hm = new HashMap<>(); //向集合中新增資料 key為Person物件 value為字串

二叉樹的:前序中序後序非遞迴方法(棧)bfs+佇列)

二叉樹的五種遍歷: 遞迴遍歷:前序,中序,後序,非遞迴方法(棧); 層次遍歷(bfs+佇列); #include <vector> #include <iostream> #include <stack> #include <q

根據class獲取同一個類的值返回時一個數組取值

<div class="text-cont">第1條</div> <div class="text-cont">第2條</div> <div class="text-cont">第3條</div> <div class="

Java中 ListArrayList) 的例子

package Strings; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Lists {     public static vo

java--ArrayList泛型:使用ArrayList泛型新增5個學生物件 然後列印5位學生的自我介紹方法。

import java.util.ArrayList; import java.util.List; /** * 使用ArrayList泛型新增5個學生物件,然後遍歷列印5位學生的自我介紹方法。 * (需建立學生類)Student.java包含 name,age,gen

Jersey使用總結一(jersey初步使用簡單post請求引數傳遞String方式不含物件操作)

首先說明一下,jersey是幹什麼的呢,我個人的理解就是類似於一種webservice技術或框架 jersey-rest為service端,其它的jersey請求為客戶端,客戶端傳送一個請求(帶參或不帶參)呼叫service端的方法,方法返回結果給客戶端。 如以下使用步奏

map方式效率

1)map的key採用簡單形式和複雜形式時,查詢的效率是不同的,簡單的key值效率更高       2)當資料量大的時候,採用entrySet遍歷key+value的效率要高於keySet       3)當我們只需要取得val