java中List集合及其遍歷詳解
1. 首先List<E>集合繼承與Collection<E>,是一個(gè)接口。
① Collection (集合框架是JDK1.2版本出現(xiàn)的)
② list:是有序的,元素可以重復(fù),以為該集合體系有索引。
經(jīng)常用到的是實(shí)現(xiàn)該接口的ArrayList和LinkedList類
③ Arraylist: 底層的數(shù)據(jù)結(jié)構(gòu)使用的是數(shù)組結(jié)構(gòu),
特點(diǎn): 查詢速度很快,但是增刪稍慢。線程不同步
LinkedList: 底層使用的是鏈表數(shù)據(jù)結(jié)構(gòu)。
特點(diǎn): 增刪速度很快,查詢稍慢。
Vector:(JDK1.0版本出現(xiàn)的) 底層是數(shù)組數(shù)據(jù)結(jié)構(gòu),線程同步。被ArrayList替代了。(已經(jīng)不用了)
2. List的兩種遍歷方式:
public class Demo { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add("C"); System.out.println("........第一種遍歷方式:for遍歷......"); for (Object li : list) { System.out.println(li); } System.out.println("........第二種遍歷方式:ListIterator迭代遍歷......"); ListIterator<String> it = list.listIterator(); while (it.hasNext()) { Object obj = it.next(); System.out.println(obj); } } }
效果圖:
3.使用LinkList模擬一個(gè)堆?;蛘哧?duì)列數(shù)據(jù)結(jié)構(gòu)。即: 堆棧:先進(jìn)后出 ; 隊(duì)列: 先進(jìn)先出
class Duilie{ private LinkedList<Object> link; Duilie(){ link = new LinkedList<Object>(); } public void myAdd(Object obj){ link.addFirst(obj); } public Object myGet(){ return link.removeLast();//先進(jìn)先出---若要改成先進(jìn)后出,將removelast()改成removeFirst() } public boolean isNull(){ return link.isEmpty(); } } public class Demo2 { public static void main(String[] args) { Duilie dl = new Duilie(); dl.myAdd("java01"); dl.myAdd("java02"); dl.myAdd("java03"); dl.myAdd("java04"); while(!dl.isNull()){ System.out.println(dl.myGet()); } } }
效果圖:
以上為 先進(jìn)先出,若要改為先進(jìn)后出,則根據(jù)代碼中寫的改一下就可以了
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
為什么wait和notify必須放在synchronized中使用
這篇文章主要介紹了為什么wait和notify必須放在synchronized中使用,文章圍繞主題的相關(guān)問題展開詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考以參考一下2022-05-05mybatis插件pageHelper實(shí)現(xiàn)分頁效果
這篇文章主要為大家詳細(xì)介紹了mybatis插件pageHelper實(shí)現(xiàn)分頁效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12Java實(shí)現(xiàn)本地緩存的四種方案(Guava Cache、Caffeine、Ehcach 和Sprin
在現(xiàn)代應(yīng)用程序開發(fā)中,緩存是提高性能和響應(yīng)速度的關(guān)鍵技術(shù)之一,Java 提供了多種本地緩存解決方案,每種方案都有其特點(diǎn)和適用場景,本文將介紹四種常見的 Java 本地緩存實(shí)現(xiàn),需要的朋友可以參考下2024-12-12用JAVA 設(shè)計(jì)生成二維碼詳細(xì)教程
本文主要介紹用JAVA 設(shè)計(jì)生成二維碼,這里一步一步詳細(xì)介紹用 java 如何設(shè)計(jì)二維碼,并附有代碼示例以便參考,有需要的小伙伴可以參考下2016-08-08深入理解JAVA中的聚集和組合的區(qū)別與聯(lián)系
下面小編就為大家?guī)硪黄钊肜斫釰AVA中的聚集和組合的區(qū)別與聯(lián)系。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過來看看吧2016-05-05Mybatis之類型處理器TypeHandler的作用與自定義方式
這篇文章主要介紹了Mybatis之類型處理器TypeHandler的作用與自定義方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04