使用枚举和Java 8查找胜出的程序

问题描述 投票:-2回答:1

我想存储如下数据:

(VCX, 1, VProgram), (ACF, 2, AProgram), (IFL, 3, IProgram) - //[ProgramType, priority, programName]

Input: inputProgramTypes: {ABC, VCX, IFL}

Output: winning programName based on priority // In this case: VProgram

因此,我计划使用具有多个值的Enum:

public enum ProgramType {
VCX("VProgram", 1),
ACF("AProgram", 2),
IFL("IProgram", 3);

ProgramType(final String name) {
    this.name = name;
}

ProgramType(final String name, final int prio) {
    this.name = name;
    this.prio = prio;
}

还有更好的存储方式吗?

[另外,我不确定使用流获取getTopPrio方法的实现。 (我可以实现)

method: getTopPriority(List<> programTypeList) {
    impl using streams??
}
java java-8 enums rank
1个回答
0
投票

getTopPriority可以这样实现:

 ProgramType getTopPriority(List<ProgramType> programTypeList) {
      return programTypeList.stream().min(Comparator.comparing(ProgramType::getPrio)).orElse(...)
 }
© www.soinside.com 2019 - 2024. All rights reserved.