java - 如何获得二维数组列表的中位数
问题描述
我正在尝试获得ArrayList
具有 110 个元素的中位数。每 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);
推荐阅读
- javascript - 云函数:避免在不同条件下嵌套 Promise
- typescript - 继承的 TypeScript 类的返回类型不起作用
- python - 如何将单个 Pandas 数据框列的内容拆分为多个新列
- javascript - Vue.js 倒数计时器偶尔会跳过
- ios - 以编程方式滚动 ScrollView,其中包含 StackView
- r - R data.table 按变量最后应用日期
- r - 带逗号但没有小数的 R 标签
- mysql - 带有 sql COPY 的列缺少数据
- pytorch - 为什么示例中 nn.Sequential 不包含 softmax 输出层?
- c++ - 哪些容器可以与 std::random_shuffle 一起使用?