1

私はJavaが初めてで、ArrayList. Jozef と Klaus から最高の価値を得たいと思っています。

ArrayList次のようになります。

|  Name        | Age|
+--------------+----+
| Jozef Coin   | 55 |    
| Jozef Coin   | 56 |    
| Jozef Coin   | 57 |
| Klaus Neumer | 34 |
| Klaus Neumer | 31 |
| Klaus Neumer | 59 |

これはこれまでの私のコードで、 の最高値のみを返しますarraylist

Person b = persons.get(0)

for(Person p: persons){    
      if(p.getAge() >= b.getAge()){    
         b = p;    
           System.out.println(b.toString());    
      }    
}

私はおそらく頭を悩ませていますが、これが可能かどうか、また可能であれば解決策があるかどうかを知りたいです。

4

4 に答える 4

0

Java 8 はクールです。

    int[] a = {1,2,3,4};
    OptionalInt maxValue = IntStream.of(a).max();
    System.out.println("Max Value: " + maxValue);
于 2016-04-03T05:07:38.073 に答える
0

Java 8 では、これを 1 ステップで実行できます。

Map<String, Integer> oldestMap = persons.stream()
    .collect(Collectors.groupingBy(Person::getName,
        Collectors.maxBy(Person::getAge).get());

これで、名前から最大年齢までのマップができました。

于 2016-04-03T05:57:56.820 に答える