我来自.Net背景,不了解以下片段。有人可以解释<>以下代码给我,因为我似乎没有得到它。抱歉愚蠢的问题,但这个我整个晚上一直在努力去理解。
List<double[]> x = new ArrayList<double[]>();
for (int i = 0; i < 3; i++) {
x.add(new double[] { 1, 2, 3, 4, 5, 6 });
}
答案 0 :(得分:2)
它们相当于C#泛型。它创建了一个双列阵列表,然后三次添加[1,2,3,4,5,6]。
答案 1 :(得分:1)
如果您创建List<T>
,则可以将T的实例添加到列表中。在这种情况下,T
为double[]
。
答案 2 :(得分:0)
在Java编程语言中,数组是对象,可以分配给java.lang.Object类型的变量。您的代码也可以这样编写
对象 numbers = new double [] {1,2, 3,4,5,6};
您的代码
List<double[]> x = new ArrayList<double[]>();
for (int i = 0; i < 3; i++) {
x.add(numbers);
}
另一种变化:在这里我创建了“x”作为可以包含对象类型的List。因为,数组是Java中Object的子类,所以我可以将数组存储在这个列表“x”
中List<Object> x=new ArrayList<Object>();
for (int i = 0; i < 3; i++) {
x.add(numbers);
}
答案 3 :(得分:0)
对于列表,&lt;&gt;中的type参数指示应该在该列表中存储的对象类型。 List<double []>
创建一个存储双精度数组的列表。
List<double []> myList = new ArrayList<Double>();
myList.add(new double [] {1,2,3});
myList.add(new double [] {4,5,6});
将两个双数组添加到myList。所以:myList.get(0)会返回:{1,2,3} 和myList.get(1)将返回:{4,5,6}。
如果您只是想创建一个双打列表,而不是双列阵列表,那么您可以这样做:
List<Double> myList = new ArrayList<Double>();
myList.add(1);
myList.add(2);
myList.add(3);
现在myList.get(0)将返回1并且myList.get(1)将返回2.请注意,要创建基本类型的列表,您需要在type参数中指定该基元类型的对象版本。即,你做不到:List<double>
这是因为编译器只会将所有类型参数转换为Object。