java基础 --- Arrays.asList():返回指定数组支持的固定大小列表
生活随笔
收集整理的這篇文章主要介紹了
java基础 --- Arrays.asList():返回指定数组支持的固定大小列表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Arrays.asList():返回指定數組支持的固定大小列表
首先看下這個方法的源碼注釋,注意第一句,Returns a fixed-size list backed by the specified array.,
意思就是:返回指定數組支持的固定大小列表
所以:
不能增加和刪除元素
不能增加和刪除元素
不能增加和刪除元素
細節1
入參為基本類型數組時,返回的List,打印出來是一個對象,size也是1
int[] a_int = {1, 2, 3, 4}; List ints = Arrays.asList(a_int); System.out.println("ints:" + ints);//ints:[[I@5f4da5c3] System.out.println("ints.size:" + ints.size());//ints.size:1細節2
入參為非基本類型,比如是包裝類時,打印正常,size是4。
//這是因為List的泛型不允許是基本類型 Integer[] a_integer = {1, 2, 3, 4}; List<Integer> integers = Arrays.asList(a_integer); System.out.println("integers:" + integers);//integers:[1, 2, 3, 4] System.out.println("integers.size:" + integers.size());//integers.size:4細節3
List對某個index的值做修改,數組對應的值也修改,說明他倆指向的是同一個地方
Integer[] a_integer = {1, 2, 3, 4}; List<Integer> integers = Arrays.asList(a_integer); integers.set(0, 0); System.out.println(Arrays.asList(a_integer));//[0, 2, 3, 4]細節4
這樣new ArrayList再包一層,list才可以做增加和刪除元素的操作
List<String> list1 = new ArrayList<>(Arrays.asList("qqq", "www", "eee")); list1.add("aaa1"); list1.forEach(str -> System.out.println(str));細節5
這樣不包一層,list2就是定長的,不能做增加和刪除元素
因為Arrays.asList返回的ArrayList不是咱們平時常用的java.util包下的ArrayList,而是Arrays類下的一個靜態內部類,恰巧名字也叫ArrayList,由于這個內部類沒有重寫add和remove方法,所以不能進行增加和刪除的操作
總結
Arrays.asList()這個方法,最好不要用于數組轉list。
一般適用于初始化一個定長list,并賦值。
比如:
class TestArrays{private List<String> countrys = Arrays.asList("中國","日本","美國");public void 你的方法(){//具體使用countrys.size();countrys.get(0);} }總結
以上是生活随笔為你收集整理的java基础 --- Arrays.asList():返回指定数组支持的固定大小列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库---mysql的索引和引擎
- 下一篇: [python]---从java到pyt