본문 바로가기

개발언어/JavaFunction

자바 2차원 배열을 평면화 시킨 후 람다식으로 데이터 검색하기

자바에서 람다식으로 2차원 배열을 평면화 시킨 후 람다식으로 데이터를 검색하기

import java.io.IOException;
import java.util.Arrays;
import java.util.List;

public class Lamda {
    public static void main(String[] args) throws IOException {
        String[][] strings = new String[][]{{"a", "b"},{"c", "b"},{"d", "b"},{"f", "b"}};

        List<String[]> stringList = Arrays.asList(strings);

        stringList.stream().
                flatMap(arrays -> Arrays.stream(arrays))
               .filter(data -> "b".equals(data))
               .forEach(System.out::println);
    }
}

해당 람다식을보면 flatMap로 2차원 배열을 우선 평면화 시킨다. 

 

그 이후에 filter을 통해 b라는 문자열을 검색하고 

 

해당 문자열을 출력한다. strings 배열 안에는 "b"가 4개가 들어가 있기 때문에 4번이 출력되면 정상이다.