如何静态初始化二维列表? [英] How do I initialize a two-dimensional List statically?
问题描述
如何静态初始化多维列表?
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屋!