실습(Stream)
1. 1~10까지 ArrayList에 담고 출력(IntStream)
import java.util.ArrayList;
import java.util.stream.IntStream;
public class StreamTask {
public static void main(String[] args) {
ArrayList<Integer> datas = new ArrayList<>();
IntStream.rangeClosed(1, 10).forEach(data -> datas.add(data));
System.out.println(datas);
}
}

2. 1~100까지 중 짝수만 ArrayList에 담고 출력
import java.util.ArrayList;
import java.util.stream.IntStream;
public class StreamTask {
public static void main(String[] args) {
ArrayList<Integer> datas = new ArrayList<>();
IntStream.range(1, 51).forEach(data -> datas.add(data * 2));
System.out.println(datas);
}
}

3. A~F까지 ArrayList에 담고 출력
import java.util.ArrayList;
import java.util.stream.IntStream;
public class StreamTask {
public static void main(String[] args) {
ArrayList<Character> datas = new ArrayList<>();
IntStream.range(65, 71).forEach(data -> datas.add((char)data));
// or IntStream.range(0, 6).forEach(data -> datas.add((char)(data + 65)));
// or IntStream.range(0, 6).map(data -> data + 65).forEach(data -> datas.add((char)data));
System.out.println(datas);
}
}

4. A~F까지 중 D 제외하고 ArrayList에 담은 후 출력
import java.util.ArrayList;
import java.util.stream.IntStream;
public class StreamTask {
public static void main(String[] args) {
ArrayList<Character> datas = new ArrayList<>();
IntStream.range(0, 5)
.map(data -> data > 2 ? data + 1 : data)
.forEach(data -> datas.add((char)(data + 65)));
System.out.println(datas);
}
}

5. 5개의 정수를 입력받은 후 ArrayList에 담고 최대값과 최소값 출력
import java.util.ArrayList;
import java.util.Arrays;
public class StreamTask {
public static void main(String[] args) {
ArrayList<Integer> datas = new ArrayList<>(Arrays.asList(10, 20, 30, 40, 50));
System.out.println(datas.stream().mapToInt(data -> data).max().getAsInt());
System.out.println(datas.stream().mapToInt(data -> data).min().getAsInt());
}
}

6. 문자열을 5개 입력받고 모두 소문자로 변경
import java.util.ArrayList;
import java.util.stream.IntStream;
import java.util.Scanner;
public class StreamTask {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<String> datas = new ArrayList<>();
IntStream.rangeClosed(0, 4).forEach(data -> datas.add(sc.next()));
datas.stream().map(String::toLowerCase).forEach(System.out::println);
}
}

7. Apple, banana, Melon 중 첫번째 문자가 대문자인 문자열 출력
import java.util.ArrayList;
import java.util.Arrays;
public class StreamTask {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>(Arrays.asList("Apple", "banana", "Melon"));
String resuilt = fruits.stream().filter(fruit -> fruit.charAt(0) >= 65)
.filter(fruit -> fruit.charAt(0) <= 90)
.collect(Collectors.joining(", "));
System.out.println(resuilt);
}
}

8. 한글을 정수로 변경(입력 예 : 일공이사, 출력 예 : 1024)
import java.util.Scanner;
public class StreamTask {
public static void main(String[] args) {
String han = "공일이삼사오육칠팔구";
Scanner sc = new Scanner(System.in);
String data = null;
System.out.print("입력 : ");
data = sc.next();
data.chars().map(c -> han.indexOf(c)).forEach(System.out::print);
}
}

9. 정수를 한글로 변경(입력 예 : 1024, 출력 예 : 일공이사)
import java.util.Scanner;
public class StreamTask {
public static void main(String[] args) {
String han = "공일이삼사오육칠팔구";
Scanner sc = new Scanner(System.in);
System.out.print("입력 : ");
String data = sc.next();
data.chars().map(c -> c - 48).forEach(c -> System.out.print(han.charAt(c)));
}
}

'웹 개발 > Java' 카테고리의 다른 글
[Web_JAVA] 38 (0) | 2022.03.24 |
---|---|
[Web_JAVA] 37 (0) | 2022.03.23 |
[Web_JAVA] 35 (0) | 2022.03.21 |
[Web_JAVA] 34 (0) | 2022.03.20 |
[Web_JAVA] 33 (0) | 2022.03.19 |