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

Java中常用的五種List聲明并賦值操作方式

 更新時間:2024年02月29日 09:51:31   作者:Letol  
在Java編程中經(jīng)常會使用到集合類來存儲和操作多個元素,List是一種常見的集合類,它允許存儲重復(fù)的元素,并且保持元素的插入順序,這篇文章主要給大家介紹了關(guān)于Java中常用的五種List聲明并賦值操作的相關(guān)資料,需要的朋友可以參考下

方式1、新手方式

該方式聲明的List:元素支持:添加、修改、刪除

該方式雖然簡單、直觀,但并不優(yōu)雅。

  List<String> list = new ArrayList<>();
  ?
  list.add("張三");
  ?
  list.add("李四");
  ?
  list.add("王五");
  ?
  list.add("趙六");
  

 使用方式

 語法最基本的聲明,add() 方法添加。

方式2、使用Stream流方式

該方式聲明的List:元素支持:添加、修改、刪除

?  List<User> userList = Stream.of(user1, user2, user3).collect(Collectors.toList());
  userList.forEach(System.out::println);//輸出

使用方式:

Stream.of                                                                    數(shù)組轉(zhuǎn)換為流的常用方式之一
(user1, user2, user3)                                                  可變參數(shù)、數(shù)組,可以是:對象、字符串等
.collect(Collectors.toList());                                         流的收集操作
1、將可變參數(shù)(或數(shù)組)轉(zhuǎn)換為流,
2、使用流的規(guī)約操作(終端操作):收集.collect(),
3、收集方式:Collectors.toList(),收集為List(看懂這句,需了解Stream流的實現(xiàn)過程)

解析

Stream.of()是創(chuàng)建 流 的一種方式,他可以傳入多個參數(shù)創(chuàng)建一個Stream<T>的對象,沒有中間操作,終端操作:收集,收集器轉(zhuǎn)換為List集合

方式3、使用工具類為創(chuàng)建的List對象賦值,

該方式聲明的List:元素支持:添加、修改、刪除

  List<String> list = new ArrayList<>();//List規(guī)定為String類型,所以可變參數(shù)也要是String哦
  ?
  Collections.addAll(list,"張三豐","張無忌","周芷若","趙敏","張強");、
  list.forEach(System.out::println);

使用方式

指定需要添加的集合,然后通過在addAll()中傳入一個 “可變參數(shù)” ,可變參數(shù)也就是類型一樣,但個數(shù)不限的參數(shù),可變參數(shù)有數(shù)組的性質(zhì),故傳入一個 數(shù)組 對象也可以(多個數(shù)組對象就不滿足可變參數(shù)的定義了哦~)。

方式4、創(chuàng)建靜態(tài)集合

(該集合疑似和數(shù)組綁定),由于數(shù)組長度固定,該集合不可添加和刪除元素,添加、刪除就會報錯,但支持修改。

      @Test
      public void test() throws Exception{
          List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
  //        int[] arr = new int[]{1,2,3};
  //        IntStream.of(arr).forEach(System.out::print);
  //        System.out.println();
  //        Integer[] arr1 = new Integer[]{1,2,3};
  //        Stream.of(arr1).forEach(System.out::println);
  //        Stream.of(arr).forEach(System.out::println);
  ?
  //        numbers.add(10);//運行報錯java.lang.UnsupportedOperationException
  //        numbers.remove(0);//運行報錯java.lang.UnsupportedOperationException
          numbers.set(0,5);//可以修改
          numbers.stream().forEach(System.out::println);
  //        numbers.stream().sorted().forEach(System.out::println);
  //        numbers.parallelStream().forEach(System.out::println);
      }

解析:本質(zhì)是將一個數(shù)組轉(zhuǎn)成List,數(shù)組的大小是固定的,所以此List不能 添加 和 刪除 元素,但支持 修改 元素。

如果調(diào)用add()方法 添加 新的元素,會報異常:java.lang.UnsupportedOperationException

刪除 同理。

支持 修改 。雖然不能 添加 或者 刪除 但支持 修改 其中的元素。

方式5、創(chuàng)建不可變集合        (要求JDK1.9 --- Java9版本及以上)

該方式聲明的List:元素不可以 添加、修改、刪除

//只支持java9及以上版本
List list = List.of(1,2,3,4,5);
//支持Set和Map
Set set = Set.of(1,2,3,4,5);
Map map = Map.of(k,v,k,v,k,v,k,v,);

附:將一個list賦值給另一個list

1 對象引用的方式賦值

//將A的值賦給鏈表B
List<String> A= new ArrayList<String>();  
A.add("1");  
A.add("2");  
List<String> B = A; 

注:此時B對象相當(dāng)與A對象的引用,而并不是將A對象的值單純的傳遞給B對象。即:B對象的操作將直接改變A對象。如B.add(“3”);結(jié)果A中也包含了“3”;

2 非對象引用的方式賦值

單純的把值賦予另一個list的方式有多種。如下:

(假設(shè)list A已初始化并賦值)

  • 方式一:
ArrayList B?。?new ArrayList<> (A);  
  • 方式二:
ArrayList B?。?A.clone();  
  • 方式三:
ArrayList B = new ArrayList<String>();
B.addAll(A);
  • 方式四:
for(String s: A)  {
       B.add(s);  
 }

總結(jié) 

到此這篇關(guān)于Java中常用的五種List聲明并賦值操作的文章就介紹到這了,更多相關(guān)Java中List聲明并賦值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot從配置文件中獲取屬性的四種方法總結(jié)

    SpringBoot從配置文件中獲取屬性的四種方法總結(jié)

    這篇文章主要介紹了SpringBoot從配置文件中獲取屬性的四種方法總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • JavaCV實現(xiàn)照片馬賽克效果

    JavaCV實現(xiàn)照片馬賽克效果

    這篇文章主要介紹了如何通過JavaCV實現(xiàn)照片馬賽克效果,文中的示例代碼講解詳細,對我們學(xué)習(xí)JavaCV有一定的幫助,感興趣的小伙伴可以跟隨小編一起動手試一試
    2022-01-01
  • 詳解Springboot如何優(yōu)雅的進行數(shù)據(jù)校驗

    詳解Springboot如何優(yōu)雅的進行數(shù)據(jù)校驗

    基于?Spring?Boot?,如何“優(yōu)雅”的進行數(shù)據(jù)校驗?zāi)?,本文將待大家詳細介紹Springboot如何優(yōu)雅的進行數(shù)據(jù)校驗,文中有詳細的代碼示例和流程步驟,需要的朋友可以參考下
    2023-06-06
  • springboot jackson自定義序列化和反序列化實例

    springboot jackson自定義序列化和反序列化實例

    這篇文章主要介紹了spring boot jackson自定義序列化和反序列化實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • spring boot @ResponseBody轉(zhuǎn)換JSON 時 Date 類型處理方法【兩種方法】

    spring boot @ResponseBody轉(zhuǎn)換JSON 時 Date 類型處理方法【兩種方法】

    這篇文章主要介紹了spring boot @ResponseBody轉(zhuǎn)換JSON 時 Date 類型處理方法,主要給大家介紹Jackson和FastJson兩種方式,每一種方法給大家介紹的都非常詳細,需要的朋友可以參考下
    2018-08-08
  • Java基礎(chǔ)夯實之線程問題全面解析

    Java基礎(chǔ)夯實之線程問題全面解析

    操作系統(tǒng)支持多個應(yīng)用程序并發(fā)執(zhí)行,每個應(yīng)用程序至少對應(yīng)一個進程?。進程是資源分配的最小單位,而線程是CPU調(diào)度的最小單位。本文將帶大家全面解析線程相關(guān)問題,感興趣的可以了解一下
    2022-11-11
  • Java中的值傳遞以及引用傳遞和數(shù)組傳遞詳解

    Java中的值傳遞以及引用傳遞和數(shù)組傳遞詳解

    這篇文章主要介紹了Java中的值傳遞以及引用傳遞和數(shù)組傳遞詳解,Java不允許程序員選擇按值傳遞還是按引用傳遞各個參數(shù),就對象而言,不是將對象本身傳遞給方法,而是將對象的的引用或者說對象的首地址傳遞給方法,引用本身是按值傳遞的,需要的朋友可以參考下
    2023-07-07
  • 詳解feign調(diào)用session丟失解決方案

    詳解feign調(diào)用session丟失解決方案

    這篇文章主要介紹了詳解feign調(diào)用session丟失解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 詳解SpringBoot靜態(tài)方法獲取bean的三種方式

    詳解SpringBoot靜態(tài)方法獲取bean的三種方式

    本文主要介紹了詳解SpringBoot靜態(tài)方法獲取bean的三種方式,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • java實現(xiàn)基于Tcp的socket聊天程序

    java實現(xiàn)基于Tcp的socket聊天程序

    這篇文章主要為大家詳細介紹了java實現(xiàn)基于Tcp的socket聊天程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評論

河南省| 荆门市| 鹿邑县| 正定县| 舒城县| 田林县| 闸北区| 清河县| 宁蒗| 丹棱县| 社旗县| 札达县| 新乡县| 昌都县| 同心县| 仙游县| 娄底市| 宜宾市| 曲麻莱县| 皋兰县| 海宁市| 常宁市| 普定县| 和龙市| 奎屯市| 梨树县| 安化县| 盱眙县| 剑河县| 长宁县| 合作市| 鹤岗市| 来凤县| 祁东县| 阿克苏市| 阿坝| 祁门县| 珲春市| 炎陵县| 青浦区| 镇雄县|