본문 바로가기

하../java

(60)
스트림의 최종연산 스트림의 모든 요소에 지정된 작업을 수행 - forEach(), forEachOrdered() 기본으로 직렬스트림으로 처리하는데 병렬로 처리할경우 여러 스레드가 함께 하기때문에 순서 보장이 안됨 IntStream.range(1,10).parallel().forEach(System.out::print); - 918273645 뒤죽박죽 출력이됨 (순서보장X) IntStream.range(1,10).parallel().forEachOrdered(System.out::print - 123456789 로 해결 순서보장이 해결 조건 검사 - allMatch(), anyMatch(), noneMatch() boolean allMatch (Predicate
ch14 Optional<T> T 타입 객체의 래퍼클래스(Integer,Long타입) - Optional public final class Optional{ private final T value; - 타입의 참조변수 모든 종류의 객체 저장가능 + null 간접적으로 null 다루기 } null을 직접 다루는것은 위험 NullPointerException이 발생할수 있음 null체크는 if문 필수 코드가 지저분해짐 Optional객체를 생성하는 다양한 방법 String str = "abc"; Optional optVal = Optional.of(str); Optional optVal = Optional.of("abc"); Optional optVal = Optional.of(null); - NullPointerException발생 O..
ch14 스트림의 중간연산2 map() - 스트림의 요소 변환하기 Stream map(Function
ch14 스트림의 중간연산 스트림 자르기 - skip() limit() Stream skip(long n) - 앞에서부터 n개 건너뛰기 Stream limit(long maxSize) - maxSize이후의 요소는 잘라냄 IntStream intStream = IntStream.rangeClosed(1,10); - 12345678910 intStream.skip(3).limit(5).forEach(System.out::print); - 45678 스트림 요소 걸러내기 - filter(), distinct() Stream filter(Predicate
ch14 스트림의 연산 스트림의 연산 - 스트림이 제공하는 기능 - 중간 연산(n번가능)과 최종 연산(1번 가능) 중간 연산 설명 Stream distinct( ) 중복을 제거 Stream filter(Predicate predicate)(조건식) 조건에 안맞는 요소를 제외 Stream limit(long maxsize)(자르기) 스트림의 일부를 잘라낸다. Stream skip(long n)(건너 뛰기) 스트림의 일부를 건너뛴다. Stream peek(Consumer action)(중간결과 확인할때 자주사용 forEach와 비슷) 스트림의 요소에 작업을 수행 Stream sorted(Comparator comparator)(정렬기준) 스트림의 요소를 정렬한다. Stream map(Function mapper) IntStream..
ch14 스트림 만들기 스트림 만들기 - 컬렉션 스트림 생성 중간 연산(0~n개) 최종연산(0~1개) Collection인터페이스의 stream()으로 컬렉션을 스트림으로 변환 List list = Arrays.asList(1,2,3,4,5); Stream intStream - list.stream(); - list를 스트림으로 변환 스트림의 모든 요소 출력 intStream.forEach(System.out::print); - 12345 intStream.forEach(System.out::print); - 에러 forEach는 최종 연산 스트림은 이미 종료됨 객체 배열로부터 스트림 생성하기 Stream Stream.of(T...values) - 가변 인자 Stream Stream.of(T[]) Stream Arrays.s..
ch14 스트림 스트림의 특징 스트림(Stream) - 다양한 데이터 소스(컬렉션,배열)를 표준화된 방법으로 다루기 위한 것. 컬렉션 프레임워크는 LIst, Set, Map 사용 방법이 달라 표준화가 실패 List list = Arrays.asList{1,2,3,4,5} Stream intStream = list.stream(); - 컬렉션 Stream strStream = Stream.of(new String[]{"a","b","c"}); - 배열 Stream evenStream = Stream.iterate(0, n->n+2); - 0,2,4,6 Stream randomStream = Stream.generate(Math::random); - 람다식 IntStream intStream = new Random().inits(5); ..
ch14 Predicate의 결합 CF와 함수형 인터페이스 Predicate(조건식)의 결합 - and(), or(), negete()로 두 Predicate를 하나로 결합(default메소드) Predicate p = i -> i i i%2 ==0; Predicate notP = p.negate(); - i>=100 Predicate all = notP.and(q).or(r); - 100 i i%2 == 0; Predicate notP = p.negate(); // i >= 100 Predicate all = notP.and(q.or(r)); System.out.println(all.test(150)); // true 컬렉..