[英]How to get the median of a 2d Arraylist
我试图获得具有 110 个元素的ArrayList
的中位数。 每 5 个元素是一个节点,我想要节点的中位数。 我已经尝试过这段代码,但它抛出了一个超出范围的错误。 有什么建议么?
for(int i = 0; i < list.size(); i++)
{
double Median = 0;
for(int j = 0; j < list.size(); j++)
{
Median = ((list[i-1][j]/2) + (list[i-1][j]/2)-1)/2;
}
System.out.println(Median);
}
谢谢!!
这是我的做法:
static List<Double> findMediansOf(List<Double> nodes) {
List<Double> medians = new ArrayList<>();
// preventing out of bounds
if (nodes.isEmpty()) {
return medians;
}
for (int i = 0; i < nodes.size(); i += 5) {
List<Double> unsortedNode = nodes.subList(i, i + 5);
// sorting `unsortedNode`
List<Double> node = unsortedNode.stream()
.sorted()
.collect(Collectors.toList());
// node has always a size of 5, no need to average in case of an even element count
medians.add(node.get(2));
}
return medians;
}
现在如果你想打印结果,你只需要:
findMediansOf(nodes).forEach(System.out::println);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.