실습(Stream)
1. 1~100까지 ArrayList에 담기
ArrayList<Integer> datas = new ArrayList<>();
IntStream.range(0, 100).forEach(i -> datas.add(i + 1));
// ::는 void 메소드일 경우 참조형 사용이 가능하다.
datas.forEach(System.out::println);
![](https://blog.kakaocdn.net/dn/PlUJI/btrwmbJkzDS/a0E34yP0dtj8aGIDbhNUIK/img.png)
2. 100~1까지 ArrayList에 담기
ArrayList<Integer> datas = new ArrayList<>();
IntStream.range(0, 100).forEach(i -> datas.add(100 - i));
datas.forEach(System.out::println);
![](https://blog.kakaocdn.net/dn/o4uFk/btrwlR5oimG/aiU2lxIT2v4KIdx5XHg0M0/img.png)
3. ABCDEF를 각 문자별로 출력하기
String data = "ABCDEF";
data.chars().forEach(System.out::println);
data.chars().forEach(i -> System.out.println((char)i));
![](https://blog.kakaocdn.net/dn/b4KHfG/btrwjpaLKpt/gWEluObifdFcHKKk4taVvK/img.png)
4. BCDEFG를 출력하기
String data = "ABCDEF";
data.chars().map(c -> c + 1).forEach(c -> System.out.println((char)c));
![](https://blog.kakaocdn.net/dn/bcfpSr/btrwk4w9Zqt/IMF7plTsmJsUIBkUACPLnK/img.png)
5. C를 제외하고 출력하기
String data = "ABCDEF";
data.chars().filter(c -> c != 67).forEach(c -> System.out.println((char)c));
![](https://blog.kakaocdn.net/dn/sZWNO/btrwkpawcTg/i8zmu5E5QGopUKfQ7QPjE1/img.png)
6. 정렬(오름차순)
ArrayList<Integer> datas = new ArrayList<>(Arrays.asList(10, 40, 20, 30));
// 정렬한 후 다른 곳에서 사용하려고 할 때 변수에 담아준 후 collect()를 사용한다.
ArrayList<Integer> sortedAscDatas =
(ArrayList<Integer>)datas.stream().sorted().collect(Collectors.toList()); // down casting
System.out.println(sortedAscDatas);
![](https://blog.kakaocdn.net/dn/byZ9U3/btrwk5JA8Pi/0BTK9yaRC3O5qVKTXyAu4k/img.png)
7. 정렬(내림차순)
ArrayList<Integer> datas = new ArrayList<>(Arrays.asList(10, 40, 20, 30));
// sorted(Collections.reverseOrder()) : 내림차순 정렬
datas.stream().sorted(Collections.reverseOrder()).forEach(System.out::println);
![](https://blog.kakaocdn.net/dn/2kKhz/btrwhd3a4lz/Xv3QvZVF9ttMMsP7HjfJA0/img.png)
8. 전체 대문자로 변경 후 출력(BLACK, WHITE, RED, YELLOW)
ArrayList<String> datas = new ArrayList<>(Arrays.asList("black", "white", "red", "yellow"));
datas.stream().map(String::toUpperCase).forEach(System.out::println);
![](https://blog.kakaocdn.net/dn/o3c8J/btrwixmwHaD/Jnmv8MqY1KiudYh1Dwk7y1/img.png)
9. 전체 대문자가 아닌 앞 글자만 대문자로 변경 후 출력(Black, White, Red, Yellow)
ArrayList<String> datas = new ArrayList<>(Arrays.asList("black", "white", "red", "yellow"));
datas.stream()
.map(c -> c.charAt(0) >= 97 && c.charAt(0) <= 122 ? c.replace(c.charAt(0), (char)(c.charAt(0) - 32)) : c)
.forEach(System.out::println);
![](https://blog.kakaocdn.net/dn/bGyHiS/btrwiw80aPS/DnQHqn34lyemmLH70zikTK/img.png)
10. joining()
ArrayList<String> datas = new ArrayList<>(Arrays.asList("black", "white", "red", "yellow"));
System.out.println(datas.stream().collect(Collectors.joining(" ")));
![](https://blog.kakaocdn.net/dn/LARsx/btrwgkBGzXT/ydQ1HGSld5d9EzV7VeEe9K/img.png)
'웹 개발 > Java' 카테고리의 다른 글
[Web_JAVA] 37 (0) | 2022.03.23 |
---|---|
[Web_JAVA] 36 (0) | 2022.03.22 |
[Web_JAVA] 34 (0) | 2022.03.20 |
[Web_JAVA] 33 (0) | 2022.03.19 |
[Web_JAVA] 32 (0) | 2022.03.18 |