티스토리 뷰
1. Iterable의 기본 메소드 - forEach, spliterator
package java8study;
import java.util.ArrayList;
import java.util.List;
import java.util.Spliterator;
public class App2 {
public static void main(String[] args) {
List<String> myCuteBoys = new ArrayList<>();
myCuteBoys.add("JooYeon");
myCuteBoys.add("HyunJae");
myCuteBoys.add("MinGyu");
myCuteBoys.add("JeongHan");
myCuteBoys.add("JaeMin");
System.out.println("----------------Iterator------------------");
//Iterator
Iterator<String> list = myCuteBoys.iterator();
while (list.hasNext()){
String a = list.next(); //next()읽어올 요소가 남아있는지 확인 true /false
System.out.println(a);
}
System.out.println();
System.out.println("-----------------기존 for문-----------------");
//기존 for문
for(String s : myCuteBoys){
System.out.println(s);
}
System.out.println();
System.out.println("-----------------forEach-----------------");
//forEach
myCuteBoys.forEach(s-> System.out.println(s));
// :: 메소드 참조
// myCuteBoys.forEach(System.out::println);
//spliterator()
Spliterator<String> spliterator = name.spliterator();
Spliterator<String> spliterator2 = spliterator.trySplit();
System.out.println("====== spliterator.tryAdvance() ======");
while (spliterator.tryAdvance(System.out::println));
System.out.println("====== spliterator.trySplit() =======");
while (spliterator2.tryAdvance(System.out::println));
}
}
1) forEach() : 간단하게 말하면 for문 축약버전
2) spliterator() :
- Iterator랑 비슷한데 쪼개는 기능이 있음
- Iterator은 순환할 때 hasNext()를 사용했는데, spliterator은 tryAdvance() 사용
- trySplit()은 요소들을 두개로 쪼갬(홀수일 경우 2:1로 쪼갬), 순서 보장 안되서 순서가 중요하지 않을때 사용
+ 강의에서 spliterator()를 좀 간단하게만 다뤄서 더 찾아봤는데 여기에 잘 설명되어 있당
https://jistol.github.io/java/2019/11/17/spliterator/
2. Collection의 기본메소드 -removeIf(), stream(), splierator() (stream()은 다음 강의에 자세하게 다룸)
package java8study;
import java.util.ArrayList;
import java.util.List;
import java.util.Spliterator;
public class App2 {
public static void main(String[] args) {
List<String> name = new ArrayList<>();
name.add("Joooooo");
name.add("Wonnnnn");
name.add("Jeonggg");
name.add("Minnnnn");
//removeIf()
name.removeIf(s->s.startsWith("J")); /// J로 시작하는거 지워
System.out.println("====== removeIf() ======" );
name.forEach(System.out::println);
}
}
1) removeIf : 람다식으로 조건을 넣어 삭제
package java8study;
import java.util.ArrayList;
import java.util.List;
import java.util.Spliterator;
import java.util.stream.Collectors;
public class App2 {
public static void main(String[] args) {
List<String> name = new ArrayList<>();
name.add("Joooooo");
name.add("Wonnnnn");
name.add("Jeonggg");
name.add("Minnnnn");
long j = name.stream().map(String::toUpperCase)
.filter(s -> s.startsWith("J"))
.count();
System.out.println("J로 시직하는 거 몇 개?"+ j +"개");
List<String> jList = name.stream().map(String::toUpperCase)
.filter(s -> s.startsWith("J"))
.collect(Collectors.toList());
jList.forEach(System.out::println);
}
}
2) stream() 간단하게만 구현
- name들을 대문자로 바꿔서 filter로 "J"로 시작하는 문자 갯수와 리스트 출력
- 자세한건 다음 강의
3. Comparator의 기본메소드 - reversed(), thenComparing()
package java8study;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Spliterator;
public class App2 {
public static void main(String[] args) {
List<String> name = new ArrayList<>();
name.add("Joooooo");
name.add("Wonnnnn");
name.add("Jeonggg");
name.add("Minnnnn");
// Comparator - 정렬할때 많이 씀
name.sort(String::compareToIgnoreCase);
System.out.println("====== compareToIgnoreCase ======");
name.forEach(System.out::println);
Comparator<String> compareToIgnoreCase = String::compareToIgnoreCase;
name.sort(compareToIgnoreCase.reversed());
System.out.println("====== reversed ======" );
name.forEach(System.out::println);
}
}
Comparator - 정렬이 필요할때 많이 사용
*** sort ***
- compareToIgnoreCase : 문자순
- compareToIgnoreCase.reversed() : 문자역순
- thenComparing() : 정렬 조건을 더 줄때
강의 : 인프런 더 자바, Java8
강의가 딥한게 아니라서 그런지 정말 간단하게만 하는 느낌?
'Java' 카테고리의 다른 글
[Java8] CompletableFuture-Concurrent 프로그래밍1. 스레드 (0) | 2021.12.07 |
---|---|
[Java8] Optional 소개 및 API (0) | 2021.07.18 |
[Java8] Stream API 예제 (0) | 2021.07.10 |
[Java8] Stream API (0) | 2021.07.10 |
[Java8] 함수형 인터페이스와 람다 (0) | 2021.07.05 |
- Total
- Today
- Yesterday