Arrays.asList()返回的ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList类
生活随笔
收集整理的這篇文章主要介紹了
Arrays.asList()返回的ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList类
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
測(cè)試代碼:
package array;import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List;public class ArrayTest {@SuppressWarnings("unused")private static void asListTest(){String[] a = {"A", "B"};List<String> list = Arrays.asList(a);System.out.println(list.getClass().getName()); // java.util.Arrays$ArrayListSystem.out.println(list.contains("A")); // truelist.add("C");/** Jerry: 2016-01-15 9:09PM:Arrays.asList() 會(huì)返回一個(gè)ArrayList,這是Arrays里內(nèi)嵌的一個(gè)私有靜態(tài)類,而并不是java.util.ArrayList類java.util.Arrays.ArrayList 有set(), get(), contains()方法,但并不支持添加元素,所以大小是固定的,想要?jiǎng)?chuàng)建一個(gè)真正的ArrayList,你應(yīng)該:ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));*/}private static void removeInLoop() {ArrayList<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d"));// 下面這段代碼會(huì)觸發(fā)ConcurrentModificationException異常// 不能在循環(huán)里直接修改一個(gè)集合類實(shí)例/*for (String s : list) {if (s.equals("a"))list.remove(s);}*/// 應(yīng)該用迭代器來完成Iterator<String> iter = list.iterator();while (iter.hasNext()) {String s = iter.next();if (s.equals("a")) {iter.remove();}}list.forEach(System.out::println);}public static void main(String[] args) {// asListTest();removeInLoop();String[] a = {"A", "B"};// internal implementation: return new ArrayList<>(a);List<String> list1 = Arrays.asList(a);List<String> list2 = Arrays.asList(a);List<String> list3 = Arrays.asList(a);System.out.println(list1);System.out.println(list2);System.out.println(list3);/* 這行代碼會(huì)觸發(fā)異常:Exception in thread "main" java.lang.UnsupportedOperationExceptionat java.base/java.util.AbstractList.add(AbstractList.java:153)at java.base/java.util.AbstractList.add(AbstractList.java:111)at array.ArrayTest.main(ArrayTest.java:57)*/// list3.add("C");System.out.println(list1.getClass().getCanonicalName());} }總結(jié)
以上是生活随笔為你收集整理的Arrays.asList()返回的ArrayList,这是Arrays里内嵌的一个私有静态类,而并不是java.util.ArrayList类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ABAP应用服务器的HTTP响应状态码(
- 下一篇: 字符串基础类型拓宽的操作,转换成整数值