如何静态初始化二维列表? [英] How do I initialize a two-dimensional List statically?

查看:25
本文介绍了如何静态初始化二维列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何静态初始化多维列表?

How can I initialize a multidimensional List statically?

这有效:

List<List<Integer>> list = new ArrayList<List<Integer>>();

但我想用一些静态列表初始化列表,例如:(1,2,3)、(4,5,6) 和 (7,8,9)

But I'd like to init the list with some static lists like: (1,2,3), (4,5,6) and (7,8,9)

推荐答案

如果你创建一个辅助方法,代码看起来会更好一些.例如

If you create a helper method, the code looks a bit nicer. For example

public class Collections {
    public static <T> List<T> asList(T ... items) {
        List<T> list = new ArrayList<T>();
        for (T item : items) {
            list.add(item);
        }

        return list;
    }
}

然后你可以做(​​使用静态导入)

and then you can do (with a static import)

List<List<Integer>> list = asList(
                             asList(1,2,3),
                             asList(4,5,6),
                             asList(7,8,9),
                           );

为什么我不使用 Arrays.asList()

Arrays.asList() 返回一个 java.util.Arrays.ArrayList 类型的类(它是 Arrays 的内部类).我发现的问题是,很容易认为人们在使用 java.lang.ArrayList,但它们的接口非常非常不同.

Arrays.asList() returns a class of type java.util.Arrays.ArrayList (it's an inner class of Arrays). The problem I've found is that it's VERY easy to think that one is using a java.lang.ArrayList, but their interfaces are very, very different.

这篇关于如何静态初始化二维列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆