>  기사  >  Java  >  Java8의 스트림에서 최대 값을 얻는 방법

Java8의 스트림에서 최대 값을 얻는 방법

WBOY
WBOY앞으로
2023-05-14 15:43:122533검색

Java8의 스트림에는 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);
    }

이 소요됩니다. 참고: 여기서 크기는 양수, 음수 및 0 값을 통해 결정됩니다. 직접 작성하는 대신

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

작성을 단순화할 수 있습니다

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

java8 스트림 자세한 설명 ~ aggregation (max/min/count)

maxmincount 이 단어에 익숙해야 합니다. 예, mysql에서는 데이터에 자주 사용합니다. 통계.

이러한 개념과 사용법은 Java 스트림에도 도입되어 컬렉션 및 배열에 대한 데이터 통계 작업을 크게 촉진합니다.

Java8의 스트림에서 최대 값을 얻는 방법

"사례 1: 문자열 컬렉션에서 가장 긴 요소를 가져옵니다."

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

"사례 2: 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());
 }
}

"사례 3: 가장 높은 급여를 받는 직원을 가져옵니다. ."

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

「사례 4: 정수 집합에서 6보다 큰 요소 수를 계산합니다.」

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

위 내용은 Java8의 스트림에서 최대 값을 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제