멍발자의 개발
문자열 조건 세기와 스트림 본문
1. 5자리 문자열 표시
import java.util.ArrayList;
import java.util.List;
public class ForEachArraySample2 {
public static void main(String[] args) {
var data = List.of("apple", "orange", "watermelon");
var result = new ArrayList<String>();
for (String s: data) {
if(s.length() >= 5) {
result.add(s);
}
}
System.out.println(result);
}
}
2. 5자리 문자열의 개수
import java.util.ArrayList;
import java.util.List;
public class ForEachArraySample3 {
public static void main(String[] args) {
var data = List.of("apple", "orange", "watermelon");
var result = 0;
for(String s: data) {
if(s.length() >= 5) {
result++;
}
}
System.out.println(result);
}
}
3. p가 포함된 5자리 문자열
for(String s: data) {
if(s.length() >= 5){
if(s.contains("p")) {
System.out.println("p포함");
4. p가 포함된 6자리 문자열
import java.util.ArrayList;
import java.util.List;
public class ForEachArraySample3 {
public static void main(String[] args) {
var data = List.of("apple", "orange", "watermelon");
/*
var result = 0;
for(String s: data) {
if(s.length() >= 5) {
result++;
*
*/
/*
for(String s: data) {
if(s.length() >= 5){
if(s.contains("p")) {
System.out.println("p포함");
}
}
}
*/
for(String s: data) {
if(s.length() >=7) {
if(s.contains("w")) {
System.out.println(s.toString());
System.out.println("p포함");
}
}
}
}
}
<스트림>
var result = (int) data.stream() //Stream 소스
.filter(s -> s.length() >= 5) // 중간처리 (값 조작)
.count(); // 종단 처리 (값 정리)
jshell> var names = List.of("James", "Britney", "Sage")
names ==> [James, Britney, Sage]
jshell> names.stream().toList()
$2 ==> [James, Britney, Sage]
jshell> var strArray = new String[]{"test","hello","world"}
strArray ==> String[3] { "test", "hello", "world" }
jshell> Arrays.stream(strArray).toList()
$4 ==> [test, hello, world]
jshell> Stream.of(strArray).toList() //요즘은 여기가 더 많이 사용함.
$5 ==> [test, hello, world]
<종단 처리>
스트림 처리로부터 최종 결과를 추출하는 것이 종단 처리다.
새로운 List > collect(Collectors.toCollection(ArrayList::new))
갯수를 셈 > count()
allMatch(조건)메소드 = 모든 요소가 조건에 맞는 경우
anyMatch(조건)메소드 = 설정 조건 중 하나라도 맞으면 true
noneMatch(조건)메소드 = 설정 조건 중 모두 맞지 않으면 true
Collectors
jshell> names.stream().collect(Collectors.toList())
$15 ==> [James, Britney, Sage]
forEach문
결과를 하나씩 출력하는 예제
forEach(System.out::println)
<중간 처리>
스트림에 흐르는 값을 변환하거나 폐기를 선택한다.
람다식으로 전달한 조건이 true인 값만 처리한다.
map 메소드: 값을 처리할 때
skip 메소드: 일부 요소를 건너뛰고 처리를 시작할 때
limit 메소드: 처리할 요소수를 제한할 때
Sorted메소드: 요소를 정렬할 때
<람다식>
.filter(s-> s.length() >=
받는 값을 사용하는 변수 -> 처리
'STUDY > Java' 카테고리의 다른 글
기본 문법 복습 (9) 입출력과 네트워크 (0) | 2022.04.26 |
---|---|
기초 문법 복습 (7) 메소드 (0) | 2022.04.21 |
기초 문법 복습(6) (확장 for문, repeat문, 미로 게임) (0) | 2022.04.18 |
기본 문법 복습 (5) 클래스 메소드 (0) | 2022.04.15 |
기본 문법 복습 (4) (0) | 2022.04.14 |
Comments