java - 關于將Array轉換成ArrayList的警告
問題描述
package com.demo.array;import java.util.ArrayList;import java.util.Arrays;/** * 關于數組的演示 * * @author Captain * */public class ArrayDemo { public static void main(String[] args) {// 聲明數組int[] arr = { 1, 10, 8 };// 輸出測試數組System.out.println('測試的數組為:' + Arrays.toString(arr));// 通過下角標訪問元素,數組的下角標是從0開始的System.out.println('通過數組的下角標訪問元素,元素的下角標從0開始,下角標為0的元素是:' + arr[0]);// 將Array 轉換成 ArraylistArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr)); }}
問題解答
回答1:asList 是個泛型,可變參數的函數,所以傳入數組的時候,這個數組如果是基本類型數據,會被當作一個對象處理,題中就是 int[]。如果數據定義成 Integer[] 的,在 asList 的時候會被當作多個可變參數展開。
另外一個問題在于,就算是 Integer[],它轉換之后與 ArrayList<String> 也存在泛型類型不匹配的問題。在 Java8 中用 stream 可以很方便的轉換過來,之前的 Java 版可以用循環,這里給你一個 Stack Overflow 上的答案
回答2:// 聲明數組int[] arr = { 1, 10, 8 };// 輸出測試數組System.out.println('測試的數組為:' + Arrays.toString(arr));// 通過下角標訪問元素,數組的下角標是從0開始的System.out.println('通過數組的下角標訪問元素,元素的下角標從0開始,下角標為0的元素是:' + arr[0]);// 將Array 轉換成 ArraylistList<int[]> ss = Arrays.asList(arr);ArrayList<String> arrayList = new ArrayList<String>();
List<int[]>不能自動轉ArrayList<String>
建議統一數據類型, int[] arr = { 1, 10, 8 };換成 String[] arr = { '1', '10', '8' };
// 聲明數組String[] arr = { '1', '10', '8' };// 輸出測試數組System.out.println('測試的數組為:' + Arrays.toString(arr));// 通過下角標訪問元素,數組的下角標是從0開始的System.out.println('通過數組的下角標訪問元素,元素的下角標從0開始,下角標為0的元素是:' + arr[0]);// 將Array 轉換成 ArraylistArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
相關文章:
1. android - weex 項目createInstanceReferenceError: Vue is not defined2. android - 哪位大神知道java后臺的api接口的對象傳到前端后輸入日期報錯,是什么情況?求大神指點3. PHPExcel表格導入數據庫怎么導入4. pdo 寫入到數據庫的內容為中文的時候寫入亂碼5. javascript - 如圖,百度首頁,查看源代碼為什么什么都沒有?6. vue2.0+webpack 如何使用bootstrap?7. PHP類封裝的插入數據,總是插入不成功,返回false;8. mac連接阿里云docker集群,已經卡了2天了,求問?9. 微信渠道二維碼怎么使用?10. html5 - html元素select下拉列表在原生app里面為什么不能彈框顯示?
