java - 针对存储在 java.util.List 中的键/值对运行一系列论坛
问题描述
假设我有一个包含如下组件的列表:
[
{
"id": 1,
"name": "Displacement",
"value": 200
},
{
"id": 2,
"name":"Time",
"value": 120
},
{
"id":3,
"name":"Mass",
"value": 233
},
{
"id":4,
"name": "Acceleration",
"value": 9.81
},
{
"id": 5,
"name":"Speed of Light",
"value": 300000000
}
]
每个组件都是以下类的对象:
class Component {
Integer id;
String name;
Long value;
// necessary getters and setters
}
我需要从上面的列表中获取以下指标
Velocity (Displacement/Time)
:Force (Mass * Acceleration)
和Energy (Mass * Speed of Light^2)
这样做最重要的是什么?我可以流式传输列表并过滤必要的组件,如下所示:
Double calculateVelocity() {
Component displacement = list.stream().filter(c -> c.getName().equals("Displacement")).findFirst().orElseThrow(//throw err);
Component time = list.stream().filter(c -> c.getName().equals("Time")).findFirst().orElseThrow(//throw err);
return displacement.value / time.value;
} // repeat for other metrics
这将是乏味的,因为最终的实现一次需要计算更多的指标。有没有更好的办法?
谢谢
解决方案
推荐阅读
- pine-script - 如何获取特定日期的条形索引
- python - 如何在 django 上拥有追随者
- javascript - 区分 Fabric.js 中的单选和多选事件
- excel - 根据单元格数据将数据从一个工作簿复制到另一个工作簿
- session - Request.IsAuthenticated 在使用 Microsoft O365 登录的 MVC 中使用 Session 后返回 false
- python - 时间戳之间的差异为天
- c# - 为什么 Grpc.Core NuGet 包这么大?
- excel - 用于定位标题“分支”的宏
- types - 当预期有两种不同的返回类型时,Julia @code_warntype 发出警告
- git - 'git gui' / 'git citool' 是否能够触发 git hooks 预提交脚本?