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

Java中的List集合初始化及常見(jiàn)方法解析

 更新時(shí)間:2023年10月20日 09:49:20   作者:Milo(xiu)  
這篇文章主要介紹了Java中的List集合初始化及常見(jiàn)方法解析,List集合的特點(diǎn)是元素有序可重復(fù),只要是帶集合、數(shù)組的都叫有序,因若無(wú)序就不會(huì)存在有下標(biāo),本文來(lái)講一下List集合初始化及常見(jiàn)方法,需要的朋友可以參考下

1.ArrayList集合的初始化

  • 方法 1:使用Arrays.asList進(jìn)行初始化(add,remove,可能會(huì)報(bào)錯(cuò))
  • 方法 2:初始化ArrayList的匿名內(nèi)部類方法
  • 方法 3:ArrayList初始化的正常方式(推薦使用)
  • 方法4:使用Collections.nocopies
@Test
    public void testDefined(){{
        //1 方法 1:使用Arrays.asList進(jìn)行初始化
        List<Integer> integers = Arrays.asList(1, 3, 4, 5, 6);
        //2 方法 2:初始化ArrayList的匿名內(nèi)部類方法
        List<Integer> integers1 = new ArrayList<Integer>() {{
            add(1);
            add(2);
            add(3);
        }};
        //3 方法 3:ArrayList初始化的正常方式
        ArrayList<Integer> integers2 = new ArrayList<>();
        //4 方法4:使用Collections.nCopies
        ArrayList<Integer> integers3 = new ArrayList<>(Collections.nCopies(5, 3));
        integers3.forEach(System.out::println);  //33333  5個(gè)3
    }}

2.常用的List集合方法

1.添加元素方法

1.add(E e):添加元素在列表的末尾

2.add(int index, E e):添加元素在列表的指定位置,指定位置的元素依次后退一位

3.addAll(Collection<? extends E> c):

4.addAll(int index, Collection<? extends E> c):

//添加元素,無(wú)索引
    @Test
    public void testAdd(){
        List<Integer> integers = new ArrayList<>();
        //1.add(E e):添加元素在列表的末尾
        integers.add(1);
        integers.add(2);
        integers.add(3);//結(jié)果  123
        //2.add(int index, E e):添加元素在列表的指定位置,指定位置的元素依次后退一位
        integers.add(1, 5);  //結(jié)果:1523
        integers.forEach(System.out::print);
        List<Integer> integers1 = new ArrayList<>();
        //3.addAll(Collection<? extends E> c):
        integers1.addAll(integers);
        integers1.forEach(System.out::print);//結(jié)果:1523
        //4.addAll(int index, Collection<? extends E> c):
        integers.addAll(1,integers1);
        integers.forEach(System.out::print); //1 1523 523
    }

2.查看(遍歷元素)

1.for循環(huán)

2.增強(qiáng)for循環(huán)

3.迭代器iterator()

4.Collections.enumeration(集合):

5.java8:lambda表達(dá)式輸出

//遍歷list集合
    @Test
    public void testGet(){
        List<Integer> integers = new ArrayList<>();
        //1.add(E e):添加元素在列表的末尾
        integers.add(1);
        integers.add(2);
        integers.add(3);//結(jié)果  123
        //1.for循環(huán)
        for (int i = 0; i < integers.size(); i++){
            System.out.println(integers.get(i)); //123
        }
        //2.增強(qiáng)for循環(huán)
        for (Integer integer : integers) {
            System.out.println(integer); //123
        }
        //3.迭代器iterator()
        Iterator<Integer> iterator = integers.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
        //4.Collections.enumeration(集合)
        Enumeration<Integer> enumeration = Collections.enumeration(integers);
        while (enumeration.hasMoreElements()) {
            System.out.println("enumeration: " + enumeration.nextElement());
            //結(jié)果
            //enumeration: 1
            //enumeration: 2
            //enumeration: 3
        }
        //5.java8:lambda表達(dá)式輸出
        integers.forEach(System.out::println);
    }

3.修改元素

  • set(int index, E e)
    @Test
    public void testListSet(){
        List<Integer> integers = new ArrayList<>();
        integers.add(1);
        integers.add(2);
        integers.add(3);
        integers.forEach(System.out::println); //1 2 3
        integers.set(1, 100);
        integers.forEach(System.out::println); // 1 100 3
    }

4.刪除元素

1.remove(int index)

2.remove(Object o)

3.remove(Collection<? extends E> c)

4.removeRange(int 頭索引, int 尾索引)

    @Test
    public void testRemove(){
        List<Integer> ints= Arrays.asList(1,3,2,4,11,3,6,78,45);
        System.out.println(ints.size());
        Integer remove = ints.remove(4); //報(bào)錯(cuò)
        System.out.println(remove);
        ints.remove("5"); 
        List<String> strs= Arrays.asList("1","2","5");
        strs.remove("5");
        System.out.println(ints.size());
    }

報(bào)java.lang.UnsupportedOperationException

    @Test
    public void testRemove(){
        List<Integer> ints = new ArrayList<>();
        System.out.println(ints.size()); //0
        ints.add(1);
        ints.add(12);
        ints.add(13);
        ints.add(16);
        ints.add(16);
        ints.add(17);
        ints.add(10);
        System.out.println(ints.size()); // 7
        Integer remove = ints.remove(4);
        System.out.println(remove);
        System.out.println(ints.size());  // 6
}
 
可以成功運(yùn)行并刪除,調(diào)用Arrays.asList()生產(chǎn)的List的add、remove方法時(shí)報(bào)UnsupportedOperationException異常,這是由Arrays.asList() 返回的是Arrays的內(nèi)部類ArrayList, 而不是java.util.ArrayList。Arrays的內(nèi)部類ArrayList java.util.ArrayList都是繼承AbstractList,remove、add等方法AbstractList中是默認(rèn)throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重寫(xiě)了這些方法而Arrays的內(nèi)部類ArrayList沒(méi)有重寫(xiě),所以會(huì)拋出異常。

使用java.util.ArrayList 數(shù)組即可

5.其他的常見(jiàn)方法

1.size():返回此列表中的長(zhǎng)度。

2.Collections.sort(Collection<? extends E> c):集合升序排序

3.Collections.sort(list)  ---> Collections.reverse(list)  :   集合降序排序

或者:Collections.sort(list,Collections.reverseOrder());

4.public List<E> subList(int fromIndex, int toIndex): 獲取現(xiàn)有l(wèi)ist子列表

5.public int lastIndexOf(Object o):返回此列表中指定元素的最后一次出現(xiàn)的索引,如果此列表不包含元素,則返回-1。

6. public E get(int index):返回此列表中指定位置的元素。

7. public int indexOf(Object o):返回此列表中指定元素的第一次出現(xiàn)的索引,如果此列表不包含元素,則返回-1。

8.public boolean contains(Object o):可以用來(lái)比較兩個(gè)ArrayList集合中的元素是否一致

業(yè)務(wù)需求:判斷對(duì)象更新之后,修改前后的值是否改變

9.Collections.swap(List, int index1, int index2):交換同集合中index1位置與index2位置的元素

10.public Object[] toArray():以正確的順序(從第一個(gè)到最后一個(gè)元素)返回一個(gè)包含此列表中所有元素的數(shù)組。此數(shù)組是全新的,意思就是和之前的ArrayList不是指向一個(gè)引用,調(diào)用者可以自由地修改返回的數(shù)組

11.public void ensureCapacity(int minCapacity):增加數(shù)組的容量

    @Test
    public void testSort(){
        List<Integer> ints= Arrays.asList(1,3,2,4,11,3,6,78,45);
        //1.size():返回此列表中的長(zhǎng)度。
        System.out.println(ints.size());   // 9
        ints.forEach(System.out::println); //1 3 2 4 11 3 6 78 45
        //2.Collections.sort(Collection<? extends E> c):集合升序排序
        Collections.sort(ints);
        ints.forEach(System.out::println); //1 2 3 3 4 6 11 45 78
        //3.Collections.reverse(list)  :   集合降序排序
        Collections.reverse(ints);
        ints.forEach(System.out::println); //78 45 11 6 4 3 3 2 1
        //比較器Collections.reverseOrder()
        Collections.sort(integers1, Collections.reverseOrder());
        integers1.forEach(System.out::println); //78 45 11 6 4 3 3 2 1
    }

對(duì)象排序:對(duì)象實(shí)體必須實(shí)現(xiàn)Comparable()接口,需重寫(xiě)其中的compareTo()方法,否則報(bào)錯(cuò)

到此這篇關(guān)于Java中的List集合初始化及常見(jiàn)方法解析的文章就介紹到這了,更多相關(guān)List集合初始化及常見(jiàn)方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java 創(chuàng)建自定義數(shù)組

    java 創(chuàng)建自定義數(shù)組

    本篇文章是關(guān)于java 如何自己創(chuàng)建自定義數(shù)組,這里給大家一個(gè)小實(shí)例,希望能幫助有所需要的同學(xué)
    2016-07-07
  • Javaweb中Request獲取表單數(shù)據(jù)的四種方法詳解

    Javaweb中Request獲取表單數(shù)據(jù)的四種方法詳解

    本文主要介紹了Javaweb中Request獲取表單數(shù)據(jù)的四種方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 詳解java裝飾模式(Decorator Pattern)

    詳解java裝飾模式(Decorator Pattern)

    這篇文章主要為大家詳細(xì)介紹了java裝飾模式Decorator Pattern,這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它是作為現(xiàn)有的類的一個(gè)包裝,對(duì)裝飾器模式感興趣的小伙伴們可以參考一下
    2016-04-04
  • SpringBoot中使用Redis案例詳解

    SpringBoot中使用Redis案例詳解

    文章主要介紹了在SpringBoot項(xiàng)目中的基本配置和文件結(jié)構(gòu),通過(guò)引入案例給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-10-10
  • Spring的事務(wù)管理你了解嗎

    Spring的事務(wù)管理你了解嗎

    這篇文章主要為大家介紹了Spring的事務(wù)管理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • 深度解析Java @Serial 注解及常見(jiàn)錯(cuò)誤案例

    深度解析Java @Serial 注解及常見(jiàn)錯(cuò)誤案例

    Java14引入@Serial注解,用于編譯時(shí)校驗(yàn)序列化成員,替代傳統(tǒng)方式解決運(yùn)行時(shí)錯(cuò)誤,適用于Serializable類的方法/字段,需注意簽名和位置校驗(yàn),建議新項(xiàng)目采用,本文給大家介紹Java @Serial 注解的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2025-07-07
  • 詳解在java中進(jìn)行日期時(shí)間比較的4種方法

    詳解在java中進(jìn)行日期時(shí)間比較的4種方法

    這篇文章主要介紹了詳解在java中進(jìn)行日期時(shí)間比較的4種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • java怎樣動(dòng)態(tài)獲取泛型參數(shù)的類型

    java怎樣動(dòng)態(tài)獲取泛型參數(shù)的類型

    在Java中,泛型信息在編譯時(shí)會(huì)被擦除,但可以通過(guò)特定API獲取運(yùn)行時(shí)的泛型參數(shù)類型,主要API包括Class的getGenericSuperclass()和getGenericInterfaces()方法,以及ParameterizedType的getActualTypeArguments()方法
    2024-09-09
  • java使用poi自定義excel標(biāo)題頭并導(dǎo)出方式

    java使用poi自定義excel標(biāo)題頭并導(dǎo)出方式

    這篇文章主要介紹了java使用poi自定義excel標(biāo)題頭并導(dǎo)出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Java應(yīng)用打包后運(yùn)行需要注意編碼問(wèn)題

    Java應(yīng)用打包后運(yùn)行需要注意編碼問(wèn)題

    這篇文章主要介紹了 Java應(yīng)用打包后運(yùn)行需要注意編碼問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2016-12-12

最新評(píng)論

邵武市| 仪征市| 兴国县| 吉首市| 思南县| 东至县| 伊金霍洛旗| 兴城市| 永修县| 繁昌县| 舒兰市| 周至县| 宜兰县| 德钦县| 伊金霍洛旗| 丰镇市| 商河县| 林西县| 揭阳市| 嘉义县| 潮州市| 福安市| 衢州市| 永定县| 定日县| 清涧县| 九龙县| 射阳县| 华宁县| 新化县| 乐平市| 双城市| 葫芦岛市| 大埔区| 德格县| 铜山县| 彰武县| 水富县| 鸡泽县| 宜春市| 淮阳县|