java數(shù)組轉(zhuǎn)list

java中數(shù)組轉(zhuǎn)list使用Arrays.asList(T... a)方法。

public class App {
  public static void main(String[] args) {
    List<String> stringA = Arrays.asList("hello", "world","A");
    String[] stringArray = {"hello","world","B"};
    List<String> stringB = Arrays.asList(stringArray);
 
    System.out.println(stringA);
    System.out.println(stringB);
  }
}

運(yùn)行結(jié)果:
[hello, world, A]
[hello, world, B]

這個(gè)方法使用起來非常方便,簡(jiǎn)單易懂。但是需要注意以下兩點(diǎn)。

一、不能把基本數(shù)據(jù)類型轉(zhuǎn)化為列表

仔細(xì)觀察可以發(fā)現(xiàn)asList接受的參數(shù)是一個(gè)泛型的變長(zhǎng)參數(shù),而基本數(shù)據(jù)類型是無法泛型化的,如下所示:

public class App {
  public static void main(String[] args) {
    int[] intarray = {1, 2, 3, 4, 5};
    //List<Integer> list = Arrays.asList(intarray); 編譯通不過
    List<int[]> list = Arrays.asList(intarray);
    System.out.println(list);
  }
}
 
output:
[[I@66d3c617]

這是因?yàn)榘裪nt類型的數(shù)組當(dāng)參數(shù)了,所以轉(zhuǎn)換后的列表就只包含一個(gè)int[]元素。

解決方案:

要想把基本數(shù)據(jù)類型的數(shù)組轉(zhuǎn)化為其包裝類型的list,可以使用guava類庫的工具方法,示例如下:

int[] intArray = {1, 2, 3, 4};
List<Integer> list = Ints.asList(intArray);

二、asList方法返回的是數(shù)組的一個(gè)視圖

視圖意味著,對(duì)這個(gè)list的操作都會(huì)反映在原數(shù)組上,而且這個(gè)list是定長(zhǎng)的,不支持add、remove等改變長(zhǎng)度的方法。

public class App {
  public static void main(String[] args) {
    int[] intArray = {1, 2, 3, 4};
    List<Integer> list = Ints.asList(intArray);
    list.set(0, 100);
    System.out.println(Arrays.toString(intArray));
    list.add(5);
    list.remove(0);
 
  }
}

output:

[100, 2, 3, 4]
UnsupportedOperationException
UnsupportedOperationException

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、基礎(chǔ)知識(shí):1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,565評(píng)論 0 4
  • Scala與Java的關(guān)系 Scala與Java的關(guān)系是非常緊密的??! 因?yàn)镾cala是基于Java虛擬機(jī),也就是...
    燈火gg閱讀 3,608評(píng)論 1 24
  • 司潔于我,是三年在一起的真友情,和三年的隱形友情。 郝恬于我,是原本的學(xué)姐和學(xué)妹,可如今三年的同班好友,似是姐...
    司臨閱讀 592評(píng)論 0 0
  • 窗外初春頭夜雨,不覺又過三更。高樓唯有一窗燈,流珠濕繡戶,翠葉探簾旌。 似此撩人春夜里,無詩更比無情。獨(dú)吟獨(dú)唱又獨(dú)...
    莫愁Jessie閱讀 570評(píng)論 1 12
  • 號(hào)稱「男神收割機(jī)」的樸信惠,曾與眾多男神一起演出:《匹諾曹》李鐘碩、《繼承者們》李敏鎬、《醫(yī)生們》金來沅,還有讓樸...
    老金博客閱讀 565評(píng)論 0 1

友情鏈接更多精彩內(nèi)容