Rumah >Java >javaTutorial >Bagaimana untuk mendapatkan nilai maksimum dari aliran dalam java8

Bagaimana untuk mendapatkan nilai maksimum dari aliran dalam java8

WBOY
WBOYke hadapan
2023-05-14 15:43:122571semak imbas

Strim Java8 mengambil masa maksimum

 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);
    }

Nota: Saiz ditentukan di sini melalui nombor positif dan negatif serta 0 nilai. Daripada menulisnya terus sebagai

if (a > b) {
return a;
} else return b;

, anda boleh memudahkan penulisan

int max = list.stream().max((a, b) -> a > b ? 1 : -1).get();

penjelasan terperinci aliran java8~agregasi (maks/min/kira)

max, min, count Anda mesti biasa dengan perkataan ini Ya, kami sering menggunakannya untuk statistik data dalam mysql.

Konsep dan penggunaan ini juga diperkenalkan dalam aliran Java, yang sangat memudahkan statistik data kami berfungsi pada koleksi dan tatasusunan.

Bagaimana untuk mendapatkan nilai maksimum dari aliran dalam java8

"Kes 1: Dapatkan elemen terpanjang dalam koleksi 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());
 }
}

"Kes 2: Dapatkan nilai maksimum dalam koleksi 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());
 }
}

"Kes 3: Dapatkan pekerja dengan gaji tertinggi."

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());
 }
}

"Kes 4: Kira bilangan elemen yang lebih besar daripada 6 dalam set 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);
 }
}

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan nilai maksimum dari aliran dalam java8. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam