最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java集合List的方法及遍歷方式舉例

 更新時(shí)間:2025年05月15日 09:16:38   作者:舉一個(gè)梨子zz  
這篇文章主要介紹了Java集合List的方法及遍歷方式的相關(guān)資料,List?是Java集合框架中的一種接口,繼承自Collection接口,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

List集合的特點(diǎn)

有序:存和取的元素順序一致
有索引:可以通過索引操作元素
可重復(fù):存儲的元素可以重復(fù)

List集合的方法

Collection的方法List都繼承了,可以使用Collection中的方法
此外,List集合因?yàn)橛兴饕远嗔撕芏嗨饕僮鞯姆椒ā?/p>

方法名稱說明
void add (int index,E element)在此集合中的指定位置插入指定的元素
E remove (int index)刪除指定索引處的元素,返回被刪除的元素
E set (int index,E element)修改指定索引處的元素,返回被修改的元素
E get (int index)返回指定索引處的元素

注意:

List集合中的上述方法存在重載現(xiàn)象,一個(gè)是繼承Collection的需要提供的參數(shù)是給定的具體對象,另一個(gè)是List自己的需要提供的參數(shù)是索引,所以出現(xiàn)以下問題。

例如:remove(1),到底是刪除泛型是<Integer>集合中的元素1,還是刪除1索引上的元素

答:優(yōu)先調(diào)用形參和實(shí)參類型一致的方法 

代碼演示:

import java.util.ArrayList;
import java.util.List;

public class Test5 {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        System.out.println(list);//[1, 2, 3]

        //1是int類型,所以調(diào)用形參是int類型的刪除指定索引處的元素
        list.remove(1);
        System.out.println(list);//[1, 3]

        //將1變?yōu)镮nteger類型
        Integer i = Integer.valueOf(1);
        //i變量中的1是引用數(shù)據(jù)類型,所以調(diào)用形參是Object類型的刪除指定元素
        list.remove(i);
        System.out.println(list);//[3]

    }
}

List集合的遍歷方式

除了與Collection相同的迭代器遍歷,增強(qiáng)for遍歷,lambda遍歷外,還有普通for遍歷,列表迭代器遍歷。

普通for遍歷

代碼演示

public class Test6 {
    public static void main(String[] args) {
        //普通for遍歷
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        for (int i = 0; i < list.size(); i++) {
            String str = list.get(i);
            System.out.println(str);
        }
        //aaa
        //bbb
        //ccc
    }
}

列表迭代器遍歷

說明

列表迭代器ListIterator繼承自迭代器Iterator,

獲取列表迭代器

方法名稱說明
ListIterator<E> listIterator ()

返回迭代器對象默認(rèn)指向當(dāng)前集合的0索引

常用方法 

方法名說明
boolean hasNext ()

正向遍歷列表

判斷當(dāng)前位置是否有元素,

有元素返回true,沒有元素返回false

E next ()獲取當(dāng)前位置的元素
并將迭代器對象移向下一個(gè)位置。
boolean hasPrevious ()

逆向遍歷列表

判斷當(dāng)前位置是否有元素,

有元素返回true,沒有元素返回false(了解)

E previous ()獲取當(dāng)前位置的元素
并將迭代器對象移向上一個(gè)位置。(了解)
vold add (E e)將指定的元素插入列表
void remove ()刪除獲取到的元素

代碼演示

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class Test6 {
    public static void main(String[] args) {

        List&lt;String&gt; list = new ArrayList&lt;&gt;();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        //遍歷打印
        ListIterator&lt;String&gt; lit1 = list.listIterator();
        while (lit1.hasNext()) {
            String str = lit1.next();
            System.out.println(str);
        }
        //aaa
        //bbb
        //ccc

        //遍歷添加:在aaa的后面添加ddd
        ListIterator&lt;String&gt; lit2 = list.listIterator();
        while (lit2.hasNext()) {
            String s = lit2.next();
            if (s.equals("aaa")) {
                lit2.add("ddd");
            }
        }
        System.out.println(list);//[aaa, ddd, bbb, ccc]

    }
}

ArrayList集合底層原理

 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢

1.利用空參創(chuàng)建的集合,在底層創(chuàng)建一個(gè)默認(rèn)長度為0的數(shù)組
2.添加第一個(gè)元素時(shí),底層會創(chuàng)建一個(gè)新的長度為10的數(shù)組
3.存滿時(shí),會擴(kuò)容1.5倍
4.如果一次添加多個(gè)元素,1.5倍還放不下,則新創(chuàng)建數(shù)組的長度以實(shí)際為準(zhǔn)

LinkedList集合底層原理

底層數(shù)據(jù)結(jié)構(gòu)是雙向鏈表,查詢慢,增刪快,但是如果操作的是首尾元素,速度也是極快的
因此LinkedList本身多了很多直接操作首尾元素的特有API,所以除了繼承自Collection和List中的方法,還有以下方法

特有方法說明
public void addFirst(E e)在該列表開頭插入指定的元素
public void addLast(E e)將指定的元素追加到此列表的末尾
public E getFirst()返回此列表中的第一個(gè)元素
public E getLast()返回此列表中的最后一個(gè)元素
public E removeFirst()從此列表中刪除并返回第一個(gè)元素
public E removeLast()從此列表中刪除并返回最后一個(gè)元素

總結(jié) 

到此這篇關(guān)于Java集合List的方法及遍歷方式的文章就介紹到這了,更多相關(guān)Java集合List內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java+Selenium實(shí)現(xiàn)文件上傳下載功能詳解

    Java+Selenium實(shí)現(xiàn)文件上傳下載功能詳解

    這篇文章主要介紹了java代碼如何利用selenium操作瀏覽器上傳和下載文件功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-01-01
  • IntelliJ IDEA 安裝 Grep Console插件 自定義控制臺輸出多顏色格式功能

    IntelliJ IDEA 安裝 Grep Console插件 自定義控制臺輸出多顏色格式功能

    由于Intellij idea不支持顯示ascii顏色,grep-console插件能很好的解決這個(gè)問題,下面就以開發(fā)JavaEE項(xiàng)目中,結(jié)合Log4j配置多顏色日志輸出功能,感興趣的朋友一起看看吧
    2020-05-05
  • Java接入支付寶授權(quán)第三方登錄的完整步驟

    Java接入支付寶授權(quán)第三方登錄的完整步驟

    不管是支付寶支付,還是微信支付,還是銀聯(lián)支付等,大部分的支付流程都是相似的,這篇文章主要給大家介紹了關(guān)于Java接入支付寶授權(quán)第三方登錄的相關(guān)資料,使用支付寶的沙盒環(huán)境示例,需要的朋友可以參考下
    2021-07-07
  • Java 利用dom方式讀取、創(chuàng)建xml詳解及實(shí)例代碼

    Java 利用dom方式讀取、創(chuàng)建xml詳解及實(shí)例代碼

    這篇文章主要介紹了Java 利用dom方式讀取、創(chuàng)建xml的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • java基礎(chǔ)類型源碼解析之多角度講HashMap

    java基礎(chǔ)類型源碼解析之多角度講HashMap

    這篇文章主要給大家介紹了關(guān)于java基礎(chǔ)類型源碼解析之HashMap的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java基具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 淺析java volatitle 多線程問題

    淺析java volatitle 多線程問題

    Volatile修飾的成員變量在每次被線程訪問時(shí),都強(qiáng)迫從共享內(nèi)存中重讀該成員變量的值。而且,當(dāng)成員變量發(fā)生變化時(shí),強(qiáng)迫線程將變化值回寫到共享內(nèi)存
    2013-08-08
  • Spring實(shí)戰(zhàn)之使用XML方式管理聲明式事務(wù)操作示例

    Spring實(shí)戰(zhàn)之使用XML方式管理聲明式事務(wù)操作示例

    這篇文章主要介紹了Spring實(shí)戰(zhàn)之使用XML方式管理聲明式事務(wù)操作,結(jié)合實(shí)例形式詳細(xì)分析了Spring XML方式管理聲明式事務(wù)具體步驟、配置、接口及使用技巧,需要的朋友可以參考下
    2020-01-01
  • SprintBoot深入淺出講解場景啟動器Starter

    SprintBoot深入淺出講解場景啟動器Starter

    本篇文章將和大家分享一下 Spring Boot 框架中的 Starters 場景啟動器的內(nèi)容,關(guān)于 Starters 具體是用來做什么的,以及在開發(fā) Spring Boot項(xiàng)目前,要如何自定義一個(gè) Starters 場景啟動器
    2022-06-06
  • java中的除法運(yùn)算和取模運(yùn)算解讀

    java中的除法運(yùn)算和取模運(yùn)算解讀

    這篇文章主要介紹了java中的除法運(yùn)算和取模運(yùn)算,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • JAVA CountDownLatch(倒計(jì)時(shí)計(jì)數(shù)器)用法實(shí)例

    JAVA CountDownLatch(倒計(jì)時(shí)計(jì)數(shù)器)用法實(shí)例

    這篇文章主要介紹了JAVA CountDownLatch(倒計(jì)時(shí)計(jì)數(shù)器)用法實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評論

新竹市| 龙川县| 手游| 四会市| 两当县| 砀山县| 登封市| 尼木县| 民勤县| 汉沽区| 新平| 永嘉县| 西华县| 炎陵县| 夏津县| 上蔡县| 龙岩市| 嘉鱼县| 西华县| 衡阳市| 南阳市| 天长市| 河池市| 宜春市| 丽水市| 津南区| 宣汉县| 七台河市| 林州市| 伊春市| 岳阳县| 突泉县| 阿图什市| 东莞市| 萝北县| 瑞丽市| 清远市| 广河县| 正镶白旗| 临沂市| 香格里拉县|