java - 将列表拆分为 X 值的插槽
问题描述
我的 Java 应用程序中有一个列表,它是一个自定义对象的列表,所以假设这些对象具有称为 A 的属性,那么另一个始终相同的对象具有另一个值,称为 B。您在每个 A 之间进行计算列表中的元素和固定的 B 值,您会得到一个双精度值,这些值的范围从 0 到无穷大,Id 需要将这些值的对象拆分到插槽中,例如,在最终排序列表中,它的对象计算结果范围从 0 到 50 应该在排序列表中排在第一位,然后是在 50 到 100 之间的那些,等等。我怎样才能做到这一点?
double valueA = 40; //some random number as an example
List<MyCustomType> list = ...
现在列表中的每个项目都有一个道具,其值与 valueA 进行比较,因此列表中的每个项目都有不同的计算值,这就是我想要排序的值。
解决方案
您可以使用 Java 8 流功能根据您的要求拆分数据,以下是相同的示例:
public class DateTest {
public static void main(String[] args) {
List<Division> divList = new ArrayList<>();
divList.add(new Division(50, 7));
divList.add(new Division(718, 9));
divList.add(new Division(38, 9));
divList.add(new Division(37, 4));
Function<Division, Integer> condition = s -> {
return ((s.x / s.y) > 50) ? 1 : 0;
};
Map<Integer, List<Division>> collect = divList.stream().collect(
Collectors.groupingBy(condition));
System.out.println(collect.toString());
}
}
推荐阅读
- javascript - 在多个字段之间使用 ILIKE 子句对查询进行续集
- kde - KDE Spectacle includeMousePointer on rectangle
- specflow - Hooks 方法 AfterTestRun 不执行
- python - py_run_file_impl 中的错误:系统退出:没有这样的文件或目录
- node.js - 谷歌地图距离矩阵 Nodejs 超时
- vuejs2 - 将 Font Awesome 5 与 Bootstrap 3 折叠组件一起使用——在折叠时更改箭头图标?
- c - 包含文件似乎被忽略了
- arduino - 串行监视器没有输出
- google-apps-script - 非管理员使用目录 api 在 google 组中添加成员
- c# - SSIS Outputbuffer错误“脚本组件上的primeoutput方法返回成功,但没有报告行集结束”