我需要 ArrayList
中的最高、第二高和第三高数字。我通过调用 Collections.max()
获得最大值(即最高数字),但我还需要第二大值和第三大值。
我的代码:
maxPartyid =
Collections.max(electionresdashlist.get(k).getPartyNamesDTO()); //1st Highest
System.out.println( "maxPartyid:::"+maxPartyid);
in DTO :
public class PartyNamesDTO implements Comparable<PartyNamesDTO>{
private String partyId;
public String getPartyId() {
return partyId;
}
public void setPartyId(String partyId) {
this.partyId = partyId;
}
private Integer votes;
public Integer getVotes() {
return votes;
}
public void setVotes(Integer votes) {
this.votes = votes;
}
@Override
public int compareTo(PartyNamesDTO emp) {
return this.votes.compareTo(emp.getVotes());
}
public String toString(){
return partyId;
}
}
最佳答案
您可以使用 java 8 流来排序和跳过不必要的元素
list.stream().sorted(Comparator.reverseOrder()).limit(2).skip(1).findFirst()
findFirst()
返回 Optional<T>
你的对象。
关于java - 如何使用集合从 arrayList 中调用第二大数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51606628/