我需要我的 中的最高、第二高和第三高数字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;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用 java 8 流来排序和跳过不必要的元素
list.stream().sorted(Comparator.reverseOrder()).limit(2).skip(1).findFirst()
Run Code Online (Sandbox Code Playgroud)
findFirst()返回Optional<T>您的对象的一个。
小智 7
list.stream().sorted(Collections.reverseOrder()).distinct().limit(2).skip(1).findFirst().get()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23845 次 |
| 最近记录: |