[英]Collect Numbers from a 2D Array
我想WIRTE的方法称为collectNums
这是应该收集的类型的所有元素Number
从2D对象数组。 然后,我想在List
收集Number
类型的所有元素并返回它。
这是我的代码:
public static List<Number> collectNums(Object nrAry[][])
{
List<Number> numbers = new ArrayList<Number>();
for(int i = 0; i < nrAry.length; i++)
{
for(int j = 0; j < nrAry[i].length; j++)
{
if (nrAry[i][j] instanceof Number)
{
numbers.add(j);
numbers.add(i);
}
}
}
return numbers;
}
如果我还不清楚,请告诉我。 感谢大家!
您正在收集数组的索引,而不是存储在数组中的值。
public static List<Number> collectNums(Object nrAry[][])
{
List<Number> numbers = new ArrayList<Number>();
for(int i=0;i < nrAry.length; i++) {
for(int j=0;j < nrAry[i].length; j++) {
if (nrAry[i][j] instanceof Number) {
numbers.add((Number)nrAry[i][j]);
}
}
}
return numbers;
}
在Java 8中,它可能更简单:
public static List<Number> collectNums(Object nrAry[][]) {
return Arrays.stream(nrAry)
.flatMap(Arrays::stream)
.filter(x -> x instanceof Number)
.map(x -> (Number) x)
.collect(Collectors.toList());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.