본문 바로가기

728x90
반응형

전체 글

[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.. 더보기
[백준 문제 10250번] ACM 호텔 문제 https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 문제 10250) ACM 호텔 문제) ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단.. 더보기
[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) 주.. 더보기

728x90
반응형