java - 树形图获取与每个键关联的值的最大值

标签 java

在树形图中,每个键都有多个值。我必须仅获取与该键关联的每个值的最大值。任何人都可以帮忙做到这一点..

  BufferedReader reader = new BufferedReader(new FileReader("E:\\book\\geneanno.txt"));
  Map<String, String> map = new TreeMap<String,String>();
  String currentLine;
  while ((currentLine = reader.readLine()) != null){
        String[] pair  = currentLine.split("\\s+");
        key = pair[12];
        value = pair[4]+" ";
        if(map.containsKey(key)){
            value +=  map.get(key);
        } 
            map.put(key,value);

我得到的输出是这样的

键:A1CF 值:9168 7541 1478 1001

键:B547 值:1247 7841 1247 3471

但我必须像这样得到输出

键:A1CF 值:9168

键:B547 值:7841

最佳答案

您可以使用 TreeSet,而不是连接 String 中的所有值,其中元素将按照其自然顺序进行排序。

Map<String,Set<Integer>> map = TreeMap<String,TreeSet<Integer>>();

在迭代时,您可以通过 TreeSet#last() 获得最大值,因为您的值 Set 是自然排序的。

关于java - 树形图获取与每个键关联的值的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18516662/

相关文章:

java语法 intcompareQuantity = ((Fruit)compareFruit).getQuantity();不明白

java - 在整数、字符串的采访中使用的好散列函数?

java - 不确定的 ProgressBar 在对话框的一部分时不设置动画 (JavaFX 10)

java - 将 jFileChooser 中选择的文件设置为字符串?

java - Twinfield - 服务器无法识别 HTTP header SOAPAction 的值

java - @linkplain 标签的用途是什么,它与@link 有何不同

java - 如何在 IDE 之外运行 Java Swing 应用程序

java - JDBC-ODBC桥接

java - HTTP 状态 500 - 空

java - 1 项家长服务和 2 项 child 服务