【问题标题】:find the max/min from a list of elements从元素列表中找到最大值/最小值
【发布时间】:2021-10-10 14:53:08
【问题描述】:

我有一门课:

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 ===> 最大的一个而不是基于值)。

我想用最大的花色替换最大的花色,用最小的花色替换最小的花色。

【问题讨论】:

    标签: java spring list algorithm arraylist


    【解决方案1】:

    您可以尝试“就地”执行此操作,修改您的原始列表,但创建一个新列表会更简单,添加每个序列的最小值或最大值。

    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)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-21
      • 2020-12-02
      • 2019-04-04
      • 2020-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      相关资源
      最近更新 更多