본문 바로가기

728x90
반응형

이것이 자바다

[java] 이것이 자바다 ch18 데이터 입출력 2 (Writer, Reader) 5. 보조 스트림 ▷ 다른 스트림과 연결되어 여러 편리한 기능을 제공해주는 스트림. 자체적으로 입출력을 수행할 수 없기때문에 입출력 소스로부터 직접 생성된 입출력 스트림에 연결해서 사용합니다. ▷ 입출력 스트림에 보조 스트림을 연결하려면 보조 스트림을 생성할 때 생성자 매개값으로 입출력 스트림을 제공합니다. ▷ 보조스트림 변수 = new 보조스트림(입출력스트림); ▷ 보조 스트림은 또 다른 보조 스트림과 연결되어 스트림 체인으로 구성할 수 있습니다. NO 보조스트림 기능 1 InputStreamReader 바이트 스트림을 문자 스트림으로 변환 2 BufferedInputStream, BufferedOutputStream BufferedReader, BufferedWriter 입출력 성능향상 3 DataI.. 더보기
[java] 이것이 자바다 ch18 데이터 입출력 1 (Writer, Reader) 1. 입력 스트림과 출력 스트림 ▷ 프로그램을 기준으로 데이터가 들어오면 입력 스트림, 데이터가 나가면 출력 스트림 ▷ 프로그램이 다른 프로그램과 데이터를 교환하려면 양쪽 모두 입력 스트림과 출력 스트림이 필요 ▷ 바이트 스트림 : 그림, 멀티미디어, 문자 등 모든 종류의 데이터를 입출력할 때 사용 ▷ 문자 스트림 : 문자만 입출력할 때 사용 ▷ 자바는 데이터 입출력과 관련된 라이브러리를 java.io 패키지에서 제공 ◎ 스트림 입출력 NO 구분 바이트 스트림 문자 스트림 입력 스트림 출력 스트림 입력 스트림 출력스트림 1 최상위클래스 InputStream OutputStream Reader Writer 2 하위 클래스 (예) XXXInputStream (FileInputStream) XXXOutputS.. 더보기
[java] 이것이 자바다 ch17 스트림(reduce, 병렬) 11. 요소 커스텀 집계(스트림이 제공하는 메소드) ▷ 스트림은 기본 집계 메소드인 sum(), average(), count(), max(), min()을 제공하지만, 다양한 집계 결과물을 만들 수 있도록 reduce() 메소드도 제공 NO 인터페이스 리턴 타입 메소드(매개변수) 1 Stream Optional reduce(BinaryOperator accumulator) 2 T reduce(T identity, BinaryOperator accumulator) 3 IntStream OptionalInt reduce(IntBinaryOperator op) 4 int reduce(int identity, IntBinaryOperator op) 5 LongStream OptionalLong reduce(L.. 더보기
[java] 이것이 자바다 ch17 스트림(sorted, 루핑, 매칭, optional) 7. 요소 정렬 ▷ 요소를 오름차순 또는 내림차순으로 정렬하는 중간 처리 기능 NO 리턴 타입 메소드(매개변수) 설명 1 Stream sorted() Comparable 요소를 정렬한 새로운 스트림 생성 2 Stream sorted(Comparator) 요소를 Comparator에 따라 정렬한 새 스트림 생승 3 DoubleStream sorted() double 요소를 올림차순으로 정렬 4 Stream sorted() int 요소를 올림차순으로 정렬 5 Stream sorted() long 요소를 올림차순으로 정렬 ◎ Comparable 구현 객체의 정렬 ▷ 스트림의 요소가 객체일 경우 객체가 Comparable을 구현하고 있어야만 sorted() 메소드를 사용하여 정렬 가능. ▷ 그렇지 않다면 Cla.. 더보기
[java] 이것이 자바다 ch17 스트림(필터링, 매핑, wrapper) 5. 요소 걸러내기(필터링) ▷ 필터링은 요소를 걸러내는 중간 처리 기능 ◎ 필터링 메소드 NO 리턴 타입 메소드(매개변수) 설명 1 Stream IntStream LongStream DoubleStream distinct() 중복 제거 filter(Predicate) filter(intPredicate) filter(LongPredicate) filter(DoublePredicate) 조건 필터링 매개 타입은 요소 타입에 따른 함수형 인터페이스이므로 람다식으로 작성 가능 ▷ distinct() 메소드 : 요소의 중복을 제거 ▷ filter() 메소드 : 매개값으로 주어진 Predicate가 true를 리턴하는 요소만 필터링 ▷ Predicae : 함수형 인터페이스 ◎ 검사하는 추상 메소드 NO 인터페이.. 더보기
[java] 이것이 자바다 ch17 스트림(내부 반복자, 파이프라인, 인터페이스) 1. 스트림 ▷ Java8부터 컬렉션 및 배열의 요소를 반복 처리하기 위해 스트림 사용 ▷ 요소들이 하나씩 흘러가면서 처리된다는 의미 ▷ List 컬렉션의 stream() 메소드로 Stream 객체를 얻고, forEach() 메소드로 요소를 어떻게 처리할지 람다식으로 제공 ▷ 스트림과 Iterator 차이점 ▶ 내부 반복자이므로 처리 속도가 빠르고 병렬 처리에 효율적 ▶ 람다식으로 다양한 요소 처리를 정의 ▶ 중간 처리와 최종 처리를 수행하도록 파이프 라인을 형성 ◎ 스트림 사용 예제 import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.stream.Stream; public class Stre.. 더보기
[java] 이것이 자바다 ch16 람다식(rambda) 1. 람다식 ▷ 함수형 프로그래밍 : 함수를 정의하고 이 함수를 데이터 처리부로 보내 데이터를 처리하는 기법 ▷ 데이터 처리부는 제공된 함수의 입력값으로 데이터를 넣고 함수에 정의된 처리 내용을 실행 ▷ 람다식 : 데이터 처리부에 제공되는 함수 역할을 하는 매개변수를 가진 중괄호 블록이다. ▷ 자바는 람다식을 익명 구현 객체로 변환 람다식 : (매개변수, ...) -> { 처리 내용 } public interface Calculable{ // 추상 메소드 void calculate(int x, int y); }​ action( (x,y) -> { int result = x + y; System.out.println(result); });​ ◎ 함수형 인터페이스 ▷ 인터페이스가 단 하나의 추상 메소드를 가.. 더보기
[java] 이것이 자바다 ch15 컬렉션 2 4. Map 컬렉션 ▷ 키와 값으로 구성된 엔트리 객체를 저장 ▷ 키는 중복 저장할 수 없지만 값은 중복 저장할 수 있음. 기존에 저장된 키와 동일한 키로 값을 저장하면 새로운 값으로 대치 NO 기능 메소드 설명 1 객체 추가 V put(K key, V value) 주어진 키와 값을 추가, 저장이 되면 값을 리턴 2 객체 검색 boolean containsKey(Object key) 주어진 키가 있는지 여부 3 boolean containsValue(Object value) 주어진 값이 있는지 여부 4 Set entrySet() 키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아서 리턴 5 V get(Object Key) 주어진 키의 값을 리턴 6 boolean isEmpty() 컬렉션.. 더보기

728x90
반응형