当前位置: 首页 > 编程笔记 >

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

松洛华
2023-03-14
本文向大家介绍Java用Arrays.asList初始化ArrayList实例方法,包括了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

感谢大家的学习和对小牛知识库的支持。

 类似资料:
  • 为什么我可以初始化ArrayList,如下所示: 但在使用时出错:

  • 问题内容: 众所周知,arraylist是init。应该是这样的 那么,为什么Java允许这些? 那么,如果它们是正确的,为什么不允许这些? 编译器消息是:ArrayList类型的方法add(int,capture#1-of?extended Object)不适用于参数(int) 更一般 我读到了这件事,但很高兴收到您的来信。谢谢 另一个有趣的地方是: 问题答案: 您不能为类型的引用分配,因为它允

  • 问题内容: 我试图将JVM中的初始化和实例化过程组合在一起,但是JLS在一些细节上有点笨拙,因此,如果有人介意清理一些细节,将不胜感激。到目前为止,这是我能够弄清楚的。 初始化 递归初始化该类及其接口的静态最终变量,这些变量是编译时间常数。 从递归中退出,按文本顺序处理静态块和静态字段。 实例化 递归初始化作为编译时间常数的类的最终实例变量。 按文本顺序退出递归处理非静态块和实例字段,并在返回时将

  • 我有一个非常基本的问题。我需要如何为ArrayList键入parrameters才能在BlueJ中使用代码?我有一个方法如下。

  • 问题内容: 我用下面的代码。两者在我的应用程序中都运行良好。 情况1。 情况2 但是我有一些问题: 在性能方面哪个更好? 在哪种情况下,请选择案例2? 问题答案: 情况2在性能上是更好的BUT:它返回一个大小不变的List。意味着您不能在其中添加/删除元素: 返回由指定数组支持的 固定大小的 列表。(将返回的列表更改为“直写”到数组。)