본문 바로가기

728x90
반응형

BackEnd

[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 컬렉션 3 6. LIFO와 FIFO 컬렉션 ◎ 후입 선출과 선입선출 ▷ 후입 섭출(LIFO : Last In First Out) : 스택(stack) ▶ 나중에 넣은 객체가 먼저 빠져나가는 구조 ▷ 선입 선출(FIFO : First In First Out) : 큐(queue) ▶ 먼저 넣은 객체가 먼저 빠져나가는 구조 ▷ 컬렉션 프레임워크는 LIFO 자료구조를 제공하는 스택 클래스와 FIFO 자료 구조를 제공하는 큐 인터페이스 제공 ◎ Stack ▷ Stack 클래스 : LIFO 자료구조를 구현한 클래스 NO 리턴 타입 메소드 설명 1 E push(E item) 주어진 객체를 스택에 넣는다. 2 E pop() 스택의 맨 위 객체를 빼낸다. ◎ Stack 컬렉션 사용 예제 1. Coin 클래스 public class.. 더보기
[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() 컬렉션.. 더보기
[java] 이것이 자바다 ch15 컬렉션 1 1. 컬렉션 프레임워크 ▷ 널리 알려진 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 관련 인터페이스와 클래스들을 포함시켜 놓은 java.util 패키지 ▷ 주요 인터페이스 : List, Set, Map 2. List 컬렉션 ▷ 객체를 인덱스로 관리하기 때문에 객체를 저장하면 인덱스가 부여되고 인덱스로 객체를 검색, 삭제할 수 있는 기능 제공 NO 기능 메소드 설명 1 객체 추가 boolean add(E e) 주어진 객체를 맨 끝에 추가 2 void add(int index, E element) 주어진 인덱스에 객체를 추가 3 set(int index, E element) 주어진 인덱스의 객체를 새로운 객체로 바꿈 4 객체 검색 boolean contains(Object o) 주.. 더보기
[java] 이것이 자바다 ch14 스레드(thread) 2 6. 스레드 동기화 ◎ 동기화 메소드와 블록 ▷ 스레드 작업이 끝날 때까지 객체에 잠금을 걸어 스레드가 사용 중인 객체를 다른 스레드가 변경할 수 없게 합니다. ◎ 동기화 메소드 및 블록 선언 ▷ 인스턴스와 정적 메소드에 synchronized 키워드를 붙입니다. ▷ 동기화 메소드를 실행 즉시 객체는 잠금이 일어나고, 메소드 실행이 끝나면 잠금이 풀립니다. ▷ 메소드 일부 영역 실행 시 객체 잠금을 걸고 싶다면 동기화 블록을 만들어줍니다. ◎ 동기화 메소드 예제 1. Calculator 클래스 public class Calculator { private int memory; public int getMemory() { return memory; } // 동기화 메소드 public synchronized .. 더보기
[java] 이것이 자바다 ch14 스레드(thread) 1. 멀티 프로세스와 멀티 스레드 ▷ 프로세스 : 운영체제는 실행 중인 프로그램을 관리 ▷ 멀티 태스킹 : 두 가지 이상의 작업을 동시에 처리하는 것 ▷ 스레드 : 코드의 실행 흐름 ▷ 멀티 스레드 : 두 개의 코드 실행 흐름. 두 가지 이상의 작업을 처리 ▷ 멀티 프로세스 : 프로그램 단위의 멀티 태스킹 / 멀티 스레드 : 프로그램 내부에서의 멀티 태스킹 2. 메인 스레드 ▷ 메인 스레드는 main() 메소드의 첫 코드부터 순차적으로 실행 ▷ main() 메소드의 마지막 코드를 실행하거나 return 문을 만나면 실행 종료 ▷ 메인 스레드는 추가 작업 스레드들을 만들어서 실행시킬 수 있음 ▷ 메인 스레드가 작업 스레드보다 먼저 종료되더라도 작업 스레드가 계속 실행 중이라면 프로세스는 종료되지 않음. 3.. 더보기

728x90
반응형