JAVA chapter16. 스트림과 병렬처리. 


16.5 매핑(flatMapXXX(), mapXXX(), asXXXStream(), boxed())

16.5.1 flatMapXXX() 메소드



 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package sec05.stream_mapping;
 
import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;
 
public class FlatMapExample {
    public static void main(String[] args) {
        List<String> inputList1 = Arrays.asList("java8 lambda""stream mapping");
        inputList1.stream()
            .flatMap(data -> Arrays.stream(data.split(" ")))
            .forEach(word -> System.out.println(word));
        
        System.out.println();
        
        List<String> inputList2 = Arrays.asList("10, 20, 30""40, 50, 60");
        inputList2.stream()
            .flatMapToInt(data -> {
                String[] strArr = data.split(",");
                int[] intArr = new int[strArr.length];
                for(int i=0; i<strArr.length; i++) {
                    intArr[i] = Integer.parseInt(strArr[i].trim());
                }
                return Arrays.stream(intArr);
            })
            .forEach(number -> System.out.println(number));
    }
}
cs

 




16.5.2 mapXXX() 메소드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
package sec05.stream_mapping;
 
public class Student {
    private String name;
    private int score;
    
    public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }
 
    public String getName() { return name; }
    public int getScore() { return score; }
}
cs


 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package sec05.stream_mapping;
 
import java.util.Arrays;
import java.util.List;
 
public class MapExample {
    public static void main(String[] args) {
        List<Student> studentList = Arrays.asList(
                new Student("홍길동"10),
                new Student("신용권"20),
                new Student("유미선"30)
        );
            
        studentList.stream()
            .mapToInt(Student :: getScore) // .mapToInt(s->s.getScore())
            .forEach(score -> System.out.println(score));
    }
}
cs

 




16.5.3 asDoubleStream(), asLongStream(), boxed() 메소드



 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package sec05.stream_mapping;
 
import java.util.Arrays;
import java.util.stream.IntStream;
 
public class AsDoubleStreamAndBoxedExample {
    public static void main(String[] args) {
        int[] intArray = { 12345};
        
        IntStream intStream = Arrays.stream(intArray);
        intStream
            .asDoubleStream()
            .forEach(d -> System.out.println(d));
            
        System.out.println();
        
        intStream = Arrays.stream(intArray);
        intStream
            .boxed()
            .forEach(obj -> System.out.println(obj.intValue()));
    }
}
cs

 




Posted by 너래쟁이
: