日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

List的遍历 Java

發(fā)布時間:2025/3/13 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 List的遍历 Java 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、對List的遍歷有三種方式???
????
?? List<String>??? list??? =??? new??? ArrayList<String>();???
?? list.add("testone");???
?? list.add(“testtwo”);???
?? ...???
????
?? 第一種:???
?? for(Iterator<String>??? it??? =??? list.iterator();??? it.hasNext();??? )??? {???
?????? ....???
?? }???
?? 這種方式在循環(huán)執(zhí)行過程中會進(jìn)行數(shù)據(jù)鎖定,??? 性能稍差,??? 同時,如果你想在尋歡過程中去掉某個元素,只能調(diào)用it.remove方法,??? 不能使用list.remove方法,??? 否則一定出現(xiàn)并發(fā)訪問的錯誤.???


?? 第二種:???
?? for(String?? data ?? :??? list)??? {???
?????? .....???
?? }???
?? 內(nèi)部調(diào)用第一種,??? 換湯不換藥,? 因此比Iterator 慢,這種循環(huán)方式還有其他限制, 不建議使用它。
????
?? 第三種:???
?? for(int??? i=0;??? i<list.size();??? i++)??? {???
?????? A??? a??? =??? list.get(i);???
?????? ...???
?? }???
?? 內(nèi)部不鎖定,??? 效率最高,??? 但是當(dāng)寫多線程時要考慮并發(fā)操作的問題。



二、測試實(shí)例
package com.inspur.Test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

/**
?*@author WHD
?*2015-3-5
?*/
@SuppressWarnings("unused")
public class MapTest {
?? ?private static List<String> list= new ArrayList<String>();
?? ?public static void main(String[]args){
?? ??? ?MapTest? mapTest = new? MapTest();
?? ??? ?mapTest.initList(list);
?? ??? ?mapTest.foreach(list);
?? ??? ?mapTest.forlist(list);
?? ??? ?mapTest.iteratorList(list);
?? ?}
?? ?
?? ?//list 集合中添加10萬條數(shù)據(jù)
?? ?public List initList(List<String> list){
?? ???? int i=0;
?? ??? ?int num=6000000;
?? ??? ?for(i=0;i<num;i++){
?? ??? ??? ?list.add("list"+i);
?? ??? ?}
?? ??? ?return list;
?? ?}
?? ?//list 集合遍歷 foreach
?? ?
?? ?public void? foreach(List<String> list){
?? ??? ?long start= System.currentTimeMillis();
?? ??? ?for(String data:list){
?? ??? ??? ?String value=data;
?? ??? ?}
?? ??? ?
?? ??? ?long end=System.currentTimeMillis();
?? ??? ?long count=end-start;
?? ??? ?System.out.println("foreach 循環(huán)時間"+count);
?? ?}
?? ?// list集合遍歷? for
?? ?public void forlist(List<String> list){
?? ??? ?long start=System.currentTimeMillis();
?? ??? ?int i=0;
?? ??? ?for( i=0;i<list.size();i++){
?? ??? ??? ?String value=list.get(i);
?? ??? ?}
?? ??? ?long end=System.currentTimeMillis();
?? ??? ?long count=end-start;
?? ??? ?System.out.println("for list.size() 遍歷時間"+count);
?? ?}
?? ?
?? ?// Iterator 遍歷循環(huán)
?? ?public void iteratorList(List<String> list){
?? ??? ?long start= System.currentTimeMillis();
?? ??? ?for(Iterator<String>? it=list.iterator();it.hasNext();){
?? ??? ??? ?String value=it.next();
?? ??? ?}
?? ??? ?long end=System.currentTimeMillis();
?? ??? ?long count=end-start;
?? ??? ?System.out.println("iterator 遍歷時間"+count);
?? ?}

}


三、測試結(jié)果:
(1)、第一次
foreach? 遍歷時間:55
for list.size()遍歷時間:47
iterator 遍歷時間:51
(2)、第二次
foreach? 遍歷時間:54
for list.size()遍歷時間:44
iterator 遍歷時間:50
(3)、第三次
foreach? 遍歷時間:48
for list.size()遍歷時間:43
iterator 遍歷時間:44
從測試的結(jié)果我們可以明顯的看到效率了!

轉(zhuǎn)載于:https://www.cnblogs.com/cooking/p/4914480.html

總結(jié)

以上是生活随笔為你收集整理的List的遍历 Java的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。