java - 關(guān)于將Array轉(zhuǎn)換成ArrayList的警告
問題描述

package com.demo.array;import java.util.ArrayList;import java.util.Arrays;/** * 關(guān)于數(shù)組的演示 * * @author Captain * */public class ArrayDemo { public static void main(String[] args) {// 聲明數(shù)組int[] arr = { 1, 10, 8 };// 輸出測試數(shù)組System.out.println('測試的數(shù)組為:' + Arrays.toString(arr));// 通過下角標(biāo)訪問元素,數(shù)組的下角標(biāo)是從0開始的System.out.println('通過數(shù)組的下角標(biāo)訪問元素,元素的下角標(biāo)從0開始,下角標(biāo)為0的元素是:' + arr[0]);// 將Array 轉(zhuǎn)換成 ArraylistArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr)); }}
問題解答
回答1:asList 是個(gè)泛型,可變參數(shù)的函數(shù),所以傳入數(shù)組的時(shí)候,這個(gè)數(shù)組如果是基本類型數(shù)據(jù),會(huì)被當(dāng)作一個(gè)對象處理,題中就是 int[]。如果數(shù)據(jù)定義成 Integer[] 的,在 asList 的時(shí)候會(huì)被當(dāng)作多個(gè)可變參數(shù)展開。
另外一個(gè)問題在于,就算是 Integer[],它轉(zhuǎn)換之后與 ArrayList<String> 也存在泛型類型不匹配的問題。在 Java8 中用 stream 可以很方便的轉(zhuǎn)換過來,之前的 Java 版可以用循環(huán),這里給你一個(gè) Stack Overflow 上的答案
回答2:// 聲明數(shù)組int[] arr = { 1, 10, 8 };// 輸出測試數(shù)組System.out.println('測試的數(shù)組為:' + Arrays.toString(arr));// 通過下角標(biāo)訪問元素,數(shù)組的下角標(biāo)是從0開始的System.out.println('通過數(shù)組的下角標(biāo)訪問元素,元素的下角標(biāo)從0開始,下角標(biāo)為0的元素是:' + arr[0]);// 將Array 轉(zhuǎn)換成 ArraylistList<int[]> ss = Arrays.asList(arr);ArrayList<String> arrayList = new ArrayList<String>();
List<int[]>不能自動(dòng)轉(zhuǎn)ArrayList<String>
建議統(tǒng)一數(shù)據(jù)類型, int[] arr = { 1, 10, 8 };換成 String[] arr = { '1', '10', '8' };
// 聲明數(shù)組String[] arr = { '1', '10', '8' };// 輸出測試數(shù)組System.out.println('測試的數(shù)組為:' + Arrays.toString(arr));// 通過下角標(biāo)訪問元素,數(shù)組的下角標(biāo)是從0開始的System.out.println('通過數(shù)組的下角標(biāo)訪問元素,元素的下角標(biāo)從0開始,下角標(biāo)為0的元素是:' + arr[0]);// 將Array 轉(zhuǎn)換成 ArraylistArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
相關(guān)文章:
1. 運(yùn)行python程序時(shí)出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯(cuò)誤?2. spring-mvc - spring-session-redis HttpSessionListener失效3. 在mac下出現(xiàn)了兩個(gè)docker環(huán)境4. 利用IPMI遠(yuǎn)程安裝centos報(bào)錯(cuò)!5. IOS app應(yīng)用軟件的id號怎么查詢?比如百度貼吧的app-id=4779278136. javascript - 最近用echarts做統(tǒng)計(jì)圖時(shí)遇到兩個(gè)問題!!7. javascript - node得到req不能得到boolean8. 淺談Vue使用Cascader級聯(lián)選擇器數(shù)據(jù)回顯中的坑9. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統(tǒng)有創(chuàng)建日志文件,不寫入日志信息。10. javascript - 在 model里定義的 引用表模型時(shí),model為undefined。

網(wǎng)公網(wǎng)安備