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

Bagaimana untuk mendapatkan nilai maksimum dari aliran dalam java8

WBOY
Lepaskan: 2023-05-14 15:43:12
ke hadapan
2564 orang telah melayarinya

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);
    }
Salin selepas log masuk

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;
Salin selepas log masuk

, anda boleh memudahkan penulisan

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

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());
 }
}
Salin selepas log masuk

"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());
 }
}
Salin selepas log masuk

"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());
 }
}
Salin selepas log masuk

"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);
 }
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan