Java用Arrays.asList初始化ArrayList实例方法

Java中使用Arrays.asList初始化ArrayList

package xiaoling;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
public class ListTest{
    public static void main(String[] args){
        List<List<Integer>> list = new ArrayList<>();
        for (int num=0; num<10; ++num){
            list.add(new ArrayList(Arrays.asList(num, num+1)));
        }
        System.out.println(list);
    }
}

运行结果为:[[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9], [9, 10]]

扩展学习:

java使用Arrays.asList快速创建List集合

程序中某段案例代码如下:

Map<String, List<CronTrigger>> tMap = new HashMap<String, List<CronTrigger>>();
tMap.put(name, Arrays.asList(new CronTrigger[] { trigger }));

程序运行抛出异常:java.lang.UnsupportedOperationException

错误原因:

为了快速创建List而使用了Arrays.asList方法,但此方法返回的ArrayList不是java.util.ArrayList对象,而是Arrays的一个内部类。

我们可以看下源码

Arrays.class:
 @SafeVarargs
  public static <T> List<T> asList(T... a) {
    return new ArrayList<>(a);
  }
---------------------------------------------------
private static class ArrayList<E> extends AbstractList<E>
    implements RandomAccess, java.io.Serializable
  {
    private static final long serialVersionUID = -2764017481108945198L;
    private final E[] a;
    ArrayList(E[] array) {
      if (array==null)
        throw new NullPointerException();
      a = array;
    }
.....

上述代码中可以看出内部类ArrayList继承了AbstractList

感谢大家的学习和对我们的支持。

(0)

相关推荐

  • Java用Arrays.asList初始化ArrayList实例方法

    Java中使用Arrays.asList初始化ArrayList package xiaoling; import java.util.Arrays; import java.util.ArrayList; import java.util.List; public class ListTest{ public static void main(String[] args){ List<List<Integer>> list = new ArrayList<>(); f

  • java中为什么要谨慎使用Arrays.asList、ArrayList的subList

    1. 使用Arrays.asList的注意事项 1.1 可能会踩的坑 先来看下Arrays.asList的使用: List<Integer> statusList = Arrays.asList(1, 2); System.out.println(statusList); System.out.println(statusList.contains(1)); System.out.println(statusList.contains(3)); 输出结果如下图所示: 然后,往statusLis

  • 浅谈Arrays.asList() 和ArrayList类型区别

    <pre name="code" class="html"><pre name="code" class="html">Arrays.asList() 将一个数组转化为一个List对象,这个方法会返回一个ArrayList类型的对象, 这个ArrayList类并非java.util.ArrayList类,而是Arrays类的静态内部类!用这个对象对列表进行添加删除更新操作,就会报UnsupportedO

  • Java使用Arrays.asList报UnsupportedOperationException的解决

    项目场景: 查询多个名销售的销售业绩,上层要求要在查询销售的业绩同事也要查看到每年的年度销售冠军,于是前端传递的是以","分割开的字符串.测试的时候就报错java.lang.UnsupportedOperationException的异常 代码展示: // 这里隐藏了查询条件,所以就写死了 List<String> performId=new ArrayList<>(); performId.add("701728881476112384")

  • Java中Arrays.asList()方法详解及实例

    Arrays.asList() 是将数组作为列表. 问题来源于: public class Test { public static void main(String[] args) { int[] a = {1, 2, 3, 4}; List list = Arrays.asList(a); System.out.println(list.size()); //1 } } 期望的输出是 list 里面也有4个元素,也就是 size 为4,然而结果是1. 原因如下: 在 Arrays.asLis

  • Java踩坑记录之Arrays.AsList

    前言 java.util.Arrays的asList方法可以方便的将数组转化为集合,我们平时开发在初始化ArrayList时使用的比较多,可以简化代码,但这个静态方法asList()有几个坑需要注意: 一. 如果对集合使用增加或删除元素的操作将会报错 如下代码: List list = Arrays.asList("a","b","c"); list.add("d"); 输出结果: Exception in thread &q

  • Java Arrays.AsList原理及用法实例

    java.util.Arrays的asList方法可以方便的将数组转化为集合,我们平时开发在初始化ArrayList时使用的比较多,可以简化代码,但这个静态方法asList()有几个坑需要注意: 一. 如果对集合使用增加或删除元素的操作将会报错 如下代码: List list = Arrays.asList("a","b","c"); list.add("d"); 输出结果: Exception in thread "

  • java 源码分析Arrays.asList方法详解

    最近,抽空把java Arrays 工具类的asList 方法做了源码分析,在网上整理了相关资料,记录下来,希望也能帮助读者! Arrays工具类提供了一个方法asList, 使用该方法可以将一个变长参数或者数组转换成List . 其源代码如下: /** * Returns a fixed-size list backed by the specified array. (Changes to * the returned list "write through" to the arr

  • Java Arrays.asList使用方法解析

    Arrays.asList()方法的作用是将数组或一些元素转为集合,而你得到的集合并不是我们通常使用的List集合,而是Arrays里面的一个内部类.阿里的开发手册上java开发规范说到使用工具类Arrays.asList()方法把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出java.lang.UnsupportedOperationException的异常. 一.Arrays.asList的方法说明 public static void mai

  • Java中List.of()和Arrays.asList()的区别及原因分析

    目录 Java中List.of()和Arrays.asList()的区别及原因 1.Arrays.asList()可以插入null 2.用List.of的List自然是不包含null 3.List.of生成的List不能修改 4.关于数组修改对List的影响 原因 java listof报错处理 Java中List.of()和Arrays.asList()的区别及原因 动手写一下,让自己更有印象 1.Arrays.asList()可以插入null 而List.of()不可以 import jav

随机推荐