자바/더 자바: Java 8

자바 8 API의 기본 메소드와 스태틱 메소드

Holy Moly 2022. 3. 26. 17:23

Iterable의  기본  메소드
●   forEach()
●   spliterator()

        List<String> name = new ArrayList<>();

        name.add("holy");
        name.add("moly");
        name.add("god");
        name.add("jesus");

	// 람다 표현식
        name.forEach(s -> {
            System.out.println(s);
        });
        
        // 메소드 참조
        name.forEach(System.out::println);

동일한 결과 출력

	// splitrator로 만들어서
        Spliterator<String> spliterator = name.spliterator();
        // trySplit을 이용하여 두개로 나누어줌
        Spliterator<String> spliterator1 = spliterator.trySplit();
        while (spliterator.tryAdvance(System.out::println));
        System.out.println("===============");
        while (spliterator1.tryAdvance(System.out::println));
        System.out.println("===============");

두개의 splitrator로 쪼개짐

Collection의  기본  메소드
●   stream() / parallelStream() 

●   removeIf(Predicate)
●   spliterator()

 

        // map으로 대문자로 매핑, filter를 이용해 name안에 "G"로 시작하는 객체 갯수
        long k = name.stream().map(String::toUpperCase)
                .filter(s->s.startsWith("G")).count();
        System.out.println(k);

		// map으로 대문자로 매핑, filter를 이용해 name안에 "G"로 시작하는 객체 Set으로 모아줌
        System.out.println("===============");
        Set<String> c = name.stream().map(String::toUpperCase)
                .filter(s->s.startsWith("G")).collect(Collectors.toSet());
        System.out.println(c);

 

       	// h로 시작하는 문자열 제거
       	System.out.println("===============");
        name.removeIf(s->s.startsWith("h"));
        name.forEach(System.out::println);


Comparator의  기본  메소드  및  스태틱  메소드

●   reversed()
●   thenComparing()
●   static reverseOrder() / naturalOrder() 

●   static nullsFirst() / nullsLast()
●   static comparing()

	// comparator를 역으로 sort
    	System.out.println("===============");
        Comparator<String> comparator = String::compareToIgnoreCase;
        name.sort(comparator.reversed());
        System.out.println(name);