질문하기
Java의 람다 표현식과 Stream을 어떻게 사용하나요? ? ?
문제 해결
람다 표현식의 문법
기본 구문:
[code](parameters) -> expression 或 (parameters) ->{ statements; }
예제를 통해 알아보세요!
예제 1: 후속 테스트를 준비하기 위해 AyPerson 클래스를 정의합니다.
[code]package com.evada.de; import java.util.Arrays; import java.util.List; class AyPerson{ private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public AyPerson(String id, String name) { this.id = id; this.name = name; } } /** * Created by Ay on 2016/5/9. */ public class LambdaTest { public static void main(String[] args) { List<String> names = Arrays.asList("Ay", "Al", "Xy", "Xl"); names.forEach((name) -> System.out.println(name + ";")); } }
위의 예제 names.forEach((name) -> System.out.println(name + “;”))
는 다음과 유사합니다.
function(name){//name为参数 System.out.println(name + “;”);//方法体 }
[code]Ay; Al; Xy; Xl;
예제 2: 다음 코드를 위의 기본 함수에 복사
[code]List<Student> personList = new ArrayList<>(); personList.add(new Student("00001","Ay")); personList.add(new Student("00002","Al")); personList.add(new Student("00003","To")); personList.forEach((person) -> System.out.println(person.getId()+ ":" + person.getName()));
결과:
[code]00001:Ay 00002:Al 00003:To
예 3: f**ilter( Lambda 및 Stream에서 클래스 )** 메서드
[code]List<AyPerson> personList = new ArrayList<>(); personList.add(new AyPerson("00001","Ay")); personList.add(new AyPerson("00002","Al")); personList.add(new AyPerson("00003", "To")); //stream类中的filter方法 personList.stream() //过滤集合中person的id为00001 .filter((person) -> person.getId().equals("00001")) //将过滤后的结果循环打印出来 .forEach((person) -> System.out.println(person.getId() + ":" + person.getName()));
결과:
[code]00001:Ay
예 4: Stream 클래스의 Collect() 메서드,
[code] List<AyPerson> personList = new ArrayList<>(); List<AyPerson> newPersonList = null; personList.add(new AyPerson("00001","Ay")); personList.add(new AyPerson("00002","Al")); personList.add(new AyPerson("00003", "To")); //将过滤后的结果返回到一个新的List中 newPersonList = personList.stream() .filter((person) -> person.getId().equals("00002")).collect(Collectors.toList()); //打印结果集 newPersonList.forEach((person) -> System.out.println(person.getId() + ":" + person.getName()));
[code]00002:Al
Stream에서 사용할 수 있는 유용한 방법이 많이 있습니다. count,limit 등 API로 가서 직접 배워보세요
위는 Lambda 표현식과 Stream의 간단한 예제 내용입니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!