list<String> names = new ArrayList<>();
names.add("woonsik0");
names.add("woonsik1");
names.add("woonsik2");
names.add("woonsik3");
names.add("Koonsik");
names.add("Koonsik1");
names.add("Moonsik");
// 람라식을 이용한 forEach구문 사용
names.forEach(System.out::println);
names.forEach(s -> {
Sysout(s);
});
Spliterator<String> spliterator = names.spliterator();
위에서 순환하는 리스트를 최대한 반으로 쪼개서 새롭게 돌수 있다
Spliterator<String> spliterator1 = spliterator.trySplit();
// iterator의 hasNext()와 같은 역활 (tryAdvanced)
while (spliterator.tryAdvance(System.out::println));
while (spliterator1.tryAdvance(System.out::println));
만약 1,2,3,4의 인자가 있다면 1,2 / 3,4 로 쪼개서 3, 4 출력 후 1, 2 가 출력
names.removeIf(s->s.startsWith("M"));
//스트림 활용
List<String> list = names.stream().map(String::toUpperCase)
.filter(s-> s.startsWith("K"))
.collect(Collectors.toList());
Spliterator<String> stringSpliterator = list.spliterator();
while(stringSpliterator.tryAdvance(System.out::println));
정렬에 대해 자유로운 활용이 가능하다
names.sort(String::compareToIgnoreCase);
Comparator<String> comparator = String::compareToIgnoreCase;
names.sort(comparator.reversed());
names.sort(comparator.reversed().thenComparing(s-> s.lastIndexOf(s)));