Maison > Java > javaDidacticiel > Comment obtenir la valeur maximale du flux dans Java8

Comment obtenir la valeur maximale du flux dans Java8

WBOY
Libérer: 2023-05-14 15:43:12
avant
2565 Les gens l'ont consulté

Le flux de Java8 prend max

 public static void main(String[] args) {
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
        Integer max = list.stream().max((a, b) -> {
            if (a > b) {
                return 1;
            } else return -1;
        }).get();

        System.out.println(max);
    }
Copier après la connexion

Remarque : la taille est déterminée ici par des nombres positifs et négatifs et des valeurs 0. Au lieu de l'écrire directement

if (a > b) {
return a;
} else return b;
Copier après la connexion

vous pouvez simplifier l'écriture

int max = list.stream().max((a, b) -> a > b ? 1 : -1).get();
Copier après la connexion

java8 stream explication détaillée ~ agrégation (max/min/count)

maxmincountVous devez être familier avec ces mots, oui, dans MySQL nous les utilisons souvent pour les données statistiques.

Ces concepts et usages sont également introduits dans le flux Java, ce qui facilite grandement notre travail de statistiques de données sur les collections et les tableaux.

Comment obtenir la valeur maximale du flux dans Java8

"Cas 1 : Obtenez l'élément le plus long de la collection String."

public class StreamTest {
 public static void main(String[] args) {
  List<String> list = Arrays.asList("adnm", "admmt", "pot", "xbangd", "weoujgsd");
 
  Optional<String> max = list.stream().max(Comparator.comparing(String::length));
  System.out.println("最长的字符串:" + max.get());
 }
}
Copier après la connexion

"Cas 2 : Obtenez la valeur maximale dans la collection Integer

public class StreamTest {
 public static void main(String[] args) {
  List<Integer> list = Arrays.asList(7, 6, 9, 4, 11, 6);
 
  // 自然排序
  Optional<Integer> max = list.stream().max(Integer::compareTo);
  // 自定义排序
  Optional<Integer> max2 = list.stream().max(new Comparator<Integer>() {
   @Override
   public int compare(Integer o1, Integer o2) {
    return o1.compareTo(o2);
   }
  });
  System.out.println("自然排序的最大值:" + max.get());
  System.out.println("自定义排序的最大值:" + max2.get());
 }
}
Copier après la connexion

"Cas 3 : Obtenez l'employé avec le salaire le plus élevé." ."

public class StreamTest {
 public static void main(String[] args) {
  List<Person> personList = new ArrayList<Person>();
  personList.add(new Person("Tom", 8900, 23, "male", "New York"));
  personList.add(new Person("Jack", 7000, 25, "male", "Washington"));
  personList.add(new Person("Lily", 7800, 21, "female", "Washington"));
  personList.add(new Person("Anni", 8200, 24, "female", "New York"));
  personList.add(new Person("Owen", 9500, 25, "male", "New York"));
  personList.add(new Person("Alisa", 7900, 26, "female", "New York"));
 
  Optional<Person> max = personList.stream().max(Comparator.comparingInt(Person::getSalary));
  System.out.println("员工工资最大值:" + max.get().getSalary());
 }
}
Copier après la connexion

「Cas 4 : Calculez le nombre d'éléments supérieurs à 6 dans l'ensemble Integer.」

import java.util.Arrays;
import java.util.List;
 
public class StreamTest {
 public static void main(String[] args) {
  List<Integer> list = Arrays.asList(7, 6, 4, 8, 2, 11, 9);
 
  long count = list.stream().filter(x -> x > 6).count();
  System.out.println("list中大于6的元素个数:" + count);
 }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal