<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      簡(jiǎn)單介紹List和數(shù)組轉(zhuǎn)List集合

      摘要:介紹List接口和創(chuàng)建List對(duì)象的三個(gè)常用方法,介紹數(shù)組轉(zhuǎn)換List的幾種方法。

      綜述

      ??線性列表List是一個(gè)接口,繼承自接口Collection,習(xí)慣性地會(huì)將實(shí)現(xiàn)了List接口的對(duì)象稱為L(zhǎng)ist集合。List有兩個(gè)常用的實(shí)現(xiàn)類ArrayList和LinkedList,在開發(fā)中使用率最多的是可以動(dòng)態(tài)擴(kuò)容的ArrayList。ArrayList 底層是數(shù)組結(jié)構(gòu),查詢快,增刪慢;LinkedList 底層結(jié)構(gòu)是鏈表,查詢慢,增刪快。從功能特性上來看,List是有序、可重復(fù)的單列集合,集合中的每個(gè)元素都有對(duì)應(yīng)的順序索引,可以通過該索引來精確地控制指定位置上的元素。默認(rèn)情況下,List會(huì)按元素的添加順序給元素設(shè)置索引,第一個(gè)添加到List集合中的元素索引為0,第二個(gè)為1,以此類推可以得到后面元素的索引。所以List和數(shù)組的行為幾乎相同,都是有序的存儲(chǔ)結(jié)構(gòu)。

      如何創(chuàng)建List

      ??下面是創(chuàng)建List的三種常見方法:

      • 通過多態(tài)方式:new + List的某個(gè)子類,譬如 new ArrayList() 等;
      • List.of():of()方法可以根據(jù)給定的元素快速創(chuàng)建一個(gè)只讀的List對(duì)象,但該方法不接受null元素,如果傳入null會(huì)拋出NullPointerException異常。
      • Guava Lists工具類:使用方法為List<Integer> list = Lists.newArrayList(32, 0, 77, 90, 700, 132, 5, 36);,需要引入的guava包如下:
      <dependency>
          <groupId>com.google.guava</groupId>
          <artifactId>guava-parent</artifactId>
          <version>32.0.0-jre</version>
      </dependency>
      

      六種數(shù)組轉(zhuǎn)List的方法

      ??在工作中,經(jīng)常遇到需要對(duì)List與數(shù)組互相轉(zhuǎn)換的場(chǎng)景,因而本文介紹幾種數(shù)組轉(zhuǎn)換為L(zhǎng)ist的方法。下文使用的測(cè)試用例若無特殊說明,都基于如下數(shù)組:

      Integer[] arr = {32, 0, 77, 90, 700, 132, 5, 36};
      

      for循環(huán)遍歷

      ??通過for循環(huán)遍歷把元素添加到list集合是最基礎(chǔ)的一種操作:

      List<Integer> list = new ArrayList<>();
      for (int one : arr) {
          list.add(one);
      }
      

      Arrays.asList()

      ??數(shù)組泛型如果是基礎(chǔ)數(shù)據(jù)類型,需要轉(zhuǎn)為引用數(shù)據(jù)類型,如int 轉(zhuǎn)為Integer。如果直接使用基礎(chǔ)數(shù)據(jù)類型,那么輸出的是地址,因?yàn)閘ist集合存放的是數(shù)組。下面的示例是可以順利轉(zhuǎn)換的:

      //集合封裝的是ints
      List<Integer> ints = Arrays.asList(arr);
      Arrays.asList(arr).forEach(System.out::println);
      

      ??函數(shù)Arrays.asList(array) 返回的、只讀的List對(duì)象是由原始數(shù)組構(gòu)成的、固定大小的列表,實(shí)現(xiàn)類是 java.util.Arrays 類中一個(gè)私有靜態(tài)內(nèi)部類 java.util.Arrays.ArrayList。java.util.Arrays.ArrayList 類封裝了 set()、get()和contains() 等方法,但是沒有 add()和remove() 方法,所以調(diào)用add() 或remove() 方法會(huì)拋出異常UnsupportedOperationException。

      new ArrayList<>(Arrays.asList(array))

      ??這樣定義的List可以進(jìn)行增刪操作,推薦這么轉(zhuǎn)換。

      List<Integer> list = new ArrayList<>(Arrays.asList(arr));
      list.forEach(System.out::println);
      

      ??此轉(zhuǎn)換方法創(chuàng)建了一個(gè)新的List集合,對(duì)集合的修改不會(huì)改變數(shù)組里的值。

      Collections.addAll()

      ??通過集合工具類Collections.addAll()方法轉(zhuǎn)換:

       List<Integer> list = new ArrayList<>(arr.length);
       Collections.addAll(list, arr);
       list.add(897);
       list.forEach(System.out::println);
      

      ??根據(jù)數(shù)組長(zhǎng)度創(chuàng)建一個(gè)相同長(zhǎng)度的list,然后通過Collections.addAll()函數(shù)把數(shù)組里的元素添加到list里(最高效)。這樣得到的對(duì)象可以直接添加或者刪除元素。

      stream流collect方法

      ??可以使用流stream將下列三種數(shù)組轉(zhuǎn)換為L(zhǎng)ist——Integer[]、Long[]、Double[]。

      List<Integer> list = Arrays.stream(arr).collect(Collectors.toList());
      list.add(897);
      list.forEach(System.out::println);
      

      ??在Java 8中,可以使用如下裝箱方法把基礎(chǔ)數(shù)據(jù)類型數(shù)組int[]、long[]、double[]轉(zhuǎn)換成List集合,但是其它數(shù)據(jù)類型比如short[]、byte[]、char[],暫不支持。

      List<Integer> list = Arrays.stream(new int[] {1, 2, 3}).boxed().collect(Collectors.toList());
      list.add(777);
      list.forEach(System.out::println);
      

      ??備注:為什么int[]不能直接轉(zhuǎn)為L(zhǎng)ist,而Integer[]可以轉(zhuǎn)為L(zhǎng)ist?因?yàn)長(zhǎng)ist的泛型必須是引用類型。

      Stream.of

      ??通過Stream.of方法轉(zhuǎn)換為L(zhǎng)ist:

      List<Integer> list = Stream.of(arr).collect(Collectors.toList());
      list.add(7779);
      list.forEach(System.out::println);
      

      結(jié)束語

      ??如果大家對(duì)上述文章有好的建議,歡迎在評(píng)論區(qū)留言,樓蘭胡楊會(huì)虛心接受、認(rèn)真聆聽、積極反饋。

      posted @ 2023-07-29 21:15  樓蘭胡楊  閱讀(896)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 另类专区一区二区三区| 国产精品国产三级在线专区| 孙吴县| 中文字幕乱妇无码AV在线| 久9re热视频这里只有精品免费| 午夜福利院一区二区三区| 亚洲午夜理论无码电影| 亚洲 a v无 码免 费 成 人 a v| 国产精品自在拍首页视频8| 国产免费高清69式视频在线观看| 久久精品国产亚洲精品2020| 中文在线最新版天堂| 国产一级r片内射免费视频| 日本亚洲一区二区精品久久| 狠狠亚洲色一日本高清色| 秋霞AV鲁丝片一区二区| 中文字字幕在线中文乱码| 人妻中文字幕一区二区三| 日韩精品国内国产一区二| 亚洲精品一区国产| 国产精品永久久久久久久久久 | 人妻少妇乱子伦精品无码专区电影| 亚洲国产日韩a在线亚洲| 国产成人午夜福利精品| 欧美色综合天天久久综合精品| 亚洲国产精品午夜福利| 中文字幕人妻丝袜美腿乱 | 国产激情一区二区三区不卡| 蜜臀av无码一区二区三区| 国产精品ⅴ无码大片在线看| 一本色道久久加勒比综合| 久久三级中文欧大战字幕| 成人性生交大片免费看中文| 精品国产乱码久久久久app下载 | 国产精品国产片在线观看| 日本成熟少妇激情视频免费看 | 深夜精品免费在线观看| 在线观看免费人成视频色| 成人一区二区不卡国产| 日日噜噜夜夜狠狠视频| 久久精品一区二区三区中文字幕 |