java - 从元素列表中找到最大值/最小值
问题描述
我有一堂课:
public class item{
TypeEnum type;
double value;
}
public enum TypeEnum {
max,
min
}
我有一个像这样的项目的ArrayList:{min,max,max,max,min,min,min,max,min}
列表中的每一项都是具有 {type(min/max), value} 的对象。
我想将其转换为:{min,max,min,max}(保持相同的顺序只需替换 max,max,max ===> 最大的,而不是基于值)。
我想只用最大的一套替换最大的西装,用最小的一套替换最小的西装。
解决方案
您可以尝试“就地”执行此操作,修改您的原始列表,但创建一个新列表会更简单,添加每个序列的最小值或最大值。
System.out.println(items);
List<Item> newItems = new ArrayList<>();
for(int i=0; i<items.size(); )
{
Item pick = items.get(i);
for(i += 1; i < items.size() && pick.type == items.get(i).type; i++)
{
if((pick.value > items.get(i).value) == (pick.type == TypeEnum.MIN))
pick = items.get(i);
}
newItems.add(pick);
}
System.out.println(newItems);
输出:
[(MIN:4), (MAX:1), (MAX:5), (MAX:3), (MIN:7), (MIN:4), (MIN:1), (MAX:6), (MIN:5)]
[(MIN:4), (MAX:5), (MIN:1), (MAX:6), (MIN:5)]
推荐阅读
- data-visualization - 有人知道如何共享 google colab 文档,以便人们可以运行笔记本但看不到实际代码吗?
- java - 不了解 Android Mediaplayer 同步
- r - 对数据集中的几对使用 cpquery 函数
- sql - How to retrieve a particular number from the string XXXX-XXXX-XXX-XXXX through SQL
- python - 无法使用 python 检索所有 XML 数据
- search - Fuse.js:完全匹配的名称
- aws-amplify - snsdev-dev 已存在于堆栈中
- c# - 拆分由任何非数字字符串分隔的数字
- python - 格式化分类报告以显示不同的指标
- python - 我想在python中组合一个元组列表