java - 如何使用集合从 arrayList 中调用第二大数字

标签 java arraylist collections

我需要 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/

相关文章:

java - 使用jdbc时何时关闭Statement

java - ObjectOutputStream 人类可读

c++ - 维护对象的有序集合

c# - 从 C# 中的一堆 ICollection<Implementation> 创建一个 IEnumerable<Interface>

java - 聚焦并跟随 Swing 中的物体 JPanel

java - 将 StreamingOutput 转换为字符串

java - 如何在二维矩阵中找到相同元素的行?

java - 包含最大元素的列表

java - 如何退出我的主要方法?

java - 为什么 HashMap 在索引 (n - 1) 和哈希上插入新节点?