15장. 컬렉션 프레임워크.

Slides:



Advertisements
Similar presentations
어떻게 성경을 읽느냐 ?.  39+27=66 ( 삼구 이십칠 )  역사서 (17 권 )  시가서 (5 권 ): 욥기시편잠언전도서아가  선지서 (17 권 )
Advertisements

언어의 자서전 소단원 (1) 단원. 언어의 특성 기호성 자의성 사회성 규칙성 창조성 역사성.
Unlocking Android 인텐트 (Intent) 2 Unlocking Android 인텐트 클래스 활용 3.
Chapter 4 영업활동과 회계정보.
1. 자료구조 개념 (1) 자료구조의 개요 1) 자료구조 ① 일련의 자료들을 조직하고 구조화하는 것 ② 자료의 표현과 그것과 관련된 연산 2) 자료구조에 따라 저장공간의 효율성과 프로그램의 실행시간이 달라짐 3) 어떠한 자료구조에서도 필요한 모든 연산들을 처리하는 것이.
6 6 ███████████.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
C++ Espresso 제3장 배열과 포인터.
2장 닷넷 프레임워크.
제 4 장 프로세스 Section 1 프로세스의 개념 Section 2 프로세스 스케줄링
원가와 구매관리 원가의 이해 식자재 구매과정 검수절차 식음자재 확인 반품 보고서 작성 검수관리 입고관리 출고관리 재고관리
11장. 기본 API 클래스.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
자료구조 Data Structures 2016년 2학기 전자전기컴퓨터공학부 김한준.
(collection framework)
1.나사란 무엇인가? 2.나사제도 3.Bolt,Nut,Screw,Washer
어서와 Java는 처음이지! 제15장 제네릭과 컬렉션. 어서와 Java는 처음이지! 제15장 제네릭과 컬렉션.
자료구조 실습 (03분반)
명품 JAVA Programming 제 7 장 제네릭과 컬렉션.
명품 JAVA Essential.
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
제 6 장 프로세스 동기화 (Process Synchronization)
Remote Dictionary Server
객체 지향 원리 송치형.
자본구조와지급능력분석 제9장 제1절 개요 제2절 지급능력분석의 핵심 제3절 자본구조의 중요성 제4절 자본구조분석의 회계적 의미
목차 제1절 재고자산의 의의 및 분류 1. 재고자산의 의의 및 중요성 2. 재고자산의 분류 1. 재고자산의 의의 및 중요성 2. 재고자산의 분류 3. 재고자산오류의 영향 4. 재고자산 가격결정에 관한 기본문제 제2절 재고자산의 수량결정.
13.5 GregorianCalendar 클래스 13.6 Vector 클래스와 Enumeration 인터페이스
10장 템플릿과 표준 템플릿 라이브러리(STL)
스택(stack) SANGJI University Kwangman Ko
제15장 STL과 람다식 STL의 개념을 이해하고 사용할 수 있다. 람다식을 이해하고 사용할 수 있다.
Chapter 9 – 구조형과 리스트 처리 Outline 9.1 자신 참조 구조형 9.2 선형 연결 리스트 9.3 리스트 연산
[INA470] Java Programming Youn-Hee Han
Java로 배우는 디자인패턴 입문 Chapter 20. Flyweight 동일한 것을 공유해서 낭비를 없앤다
Power Java 제14장 제네릭과 컬렉션.
Java의 정석 제 12 장 쓰레드(thread) Java 정석 남궁성 강의
최용술 장 Thread 최용술
정렬 제네릭 Comparator 컬렉션 클래스
Power Java 제20장 패키지.
Computer System Architecture
제4장 종합원가계산.
제4장 종합원가계산.
자바 5.0 프로그래밍.
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
자료구조(SCSC) Data Structures
Concurrency in JDK 5.0 서울시립대학교 인공지능연구실 신현주
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
제 6 장 프로세스 동기화 (Process Synchronization)
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
DataScience Lab. 박사과정 김희찬 (목)
6장 데이터 타입(2) 순천향대학교 컴퓨터공학부 하 상 호.
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
제8장 회계방법의 선택 ◆ 목차 1. 재무제표 바로 읽기 2. 재무제표가 다르게 표시되는 이유 3. 매출원가의 산정
SpringFramework 중간고사 요약 REST by SpringFramework.
컴퓨터공학실습(I) 3주 인공지능연구실.
하드웨어 vs 소프트 웨어 볼 수 있다. 만질 수 있다. 볼 수 없다. 만질 수 없다. 키보드, 마우스 ? 하드웨어
26강 JAVA Collections - I - 컬렉션이란? - JAVA도 결국 효과적인 데이터를 처리하기 위한 수단
제 11장. 템플릿과 STL 학기 프로그래밍언어및실습 (C++).
전류는 자계에서 힘을 받는다 기계공학교육 박지훈 황인석 한만혁 이덕균.
1. 가상 메모리의 개념 프로그램에 의해 빈 프레임은 부재된 페이지를 수용하기 위해 사용. 페이지 대치 과정.
(Ⅰ) 독서와 언어의 본질 언어의 본질 1 2 [고등 국어] – 독서와 문법 독서의 본질 (1) 독서의 특성
시민이 체감하는 편리한 건축인허가 절차 개선 추진.
자료구조 자료구조의 개요 배열 선형 리스트 스택 큐 트리.
Lecture 05 문자열, 배열, 디버깅 Kwang-Man Ko
房思琪的初恋乐园 ‘팡쓰치’로 보는 문학의 힘 정은비.
박 현 미 울산여자상업고등학교 창업포스터 만들며 포토샵과 친해지기 박 현 미 울산여자상업고등학교.
List, ArrayList, Vector, LinkedList 가 있습니다
12장. 자료구조로 사용되는 클래스 자료구조란? 자료구조 클래스의 사용방법.
한상철 (Han, Sangchul) 상허연구동 102호 ( )
List, ArrayList, Vector, LinkedList 가 있습니다
8장 회계자료의 질적 분석.
Presentation transcript:

15장. 컬렉션 프레임워크

1절. 컬렉션 프레임워크 소개 2절. List 컬렉션 3절. Set 컬렉션 4절. Map 컬렉션 5절. 검색 기능을 강화한 컬렉션 6절. LIFO와 FIFO 컬렉션 7절. 동기화된(synchronized) 컬렉션 8절. 동시실행(Concurrent) 컬렉션

1절. 컬렉션 프레임워크 소개 컬렉션 프레임워크(Collection Framework) 컬렉션 배열의 문제점 사전적 의미로 요소(객체)를 수집해 저장하는 것 배열의 문제점 저장할 수 있는 객체 수가 배열을 생성할 때 결정  불특정 다수의 객체를 저장하기에는 문제 객체 삭제했을 때 해당 인덱스가 비게 됨  낱알 빠진 옥수수 같은 배열  객체를 저장하려면 어디가 비어있는지 확인해야

1절. 컬렉션 프레임워크 소개 컬렉션 프레임워크(Collection Framework) 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 제공되는 컬렉션 라이브러리 java.util 패키지에 포함 인터페이스를 통해서 정형화된 방법으로 다양한 컬렉션 클래스 이용

1절. 컬렉션 프레임워크 소개 컬렉션 프레임워크의 주요 인터페이스

2절. List 컬렉션 List 컬렉션의 특징 및 주요 메소드 특징 구현 클래스 인덱스로 관리 중복해서 객체 저장 가능 ArrayList Vector LinkedList

2절. List 컬렉션 List 컬렉션의 특징 및 주요 메소드 주요 메소드

2절. List 컬렉션 ArrayList (p.725~729) 저장 용량(capacity) 객체 제거 초기 용량 : 10 (따로 지정 가능) 저장 용량을 초과한 객체들이 들어오면 자동적으로 늘어남. 고정도 가능 객체 제거 바로 뒤 인덱스부터 마지막 인덱스까지 모두 앞으로 1씩 당겨짐

2절. List 컬렉션 Vector 특징 Vector는 스레드 동기화(synchronization) 복수의 스레드가 동시에 Vector에 접근해 객체를 추가, 삭제하더라도 스레드에 안전(thread safe)

2절. List 컬렉션 LinkedList 특징 인접 참조를 링크해서 체인처럼 관리 특정 인덱스에서 객체를 제거하거나 추가하게 되면 바로 앞뒤 링크만 변경 빈번한 객체 삭제와 삽입이 일어나는 곳에서는 ArrayList보다 좋은 성능

3절. Set 컬렉션 Set 컬렉션의 특징 및 주요 메소드 특징 구현 클래스 수학의 집합에 비유 저장 순서가 유지되지 않음 객체를 중복 저장 불가 하나의 null만 저장 가능 구현 클래스 HashSet, LinkedHashSet, TreeSet

3절. Set 컬렉션 Set 컬렉션의 특징 및 주요 메소드 주요 메소드 전체 객체 대상으로 한 번씩 반복해 가져오는 반복자(Iterator) 제공 인덱스로 객체를 검색해서 가져오는 메소드 없음

3절. Set 컬렉션 HashSet (p.736~739) 특징 동일 객체 및 동등 객체는 중복 저장하지 않음 동등 객체 판단 방법

4절. Map 컬렉션 Map 컬렉션의 특징 및 주요 메소드 특징 구현 클래스 키(key)와 값(value)으로 구성된 Map.Entry 객체를 저장하는 구조 키와 값은 모두 객체 키는 중복될 수 없지만 값은 중복 저장 가능 구현 클래스 HashMap, Hashtable, LinkedHashMap, Properties, TreeMap

4절. Map 컬렉션 Map 컬렉션의 특징 및 주요 메소드 주요 메소드

4절. Map 컬렉션 HashMap (p.742~745) 특징 키 객체는 hashCode()와 equals() 를 재정의해 동등 객체가 될 조건을 정해야 키 타입은 String 많이 사용 String은 문자열이 같을 경우 동등 객체가 될 수 있도록 hashCode()와 equals() 메소드가 재정의되어 있기 때문

4절. Map 컬렉션 Hashtable 특징 키 객체 만드는 법은 HashMap과 동일 Hashtable은 스레드 동기화(synchronization)가 된 상태 복수의 스레드가 동시에 Hashtable에 접근해서 객체를 추가, 삭제하더라도 스레드에 안전(thread safe)

4절. Map 컬렉션 Properties (p.748~750) 특징 프로퍼티(~.properties) 파일 키와 값을 String 타입으로 제한한 Map 컬렉션 Properties는 프로퍼티(~.properties) 파일을 읽어 들일 때 주로 사용 프로퍼티(~.properties) 파일 옵션 정보, 데이터베이스 연결 정보, 국제화(다국어) 정보를 기록 텍스트 파일로 활용 애플리케이션에서 주로 변경이 잦은 문자열을 저장 유지 보수를 편리하게 만들어 줌 키와 값이 = 기호로 연결되어 있는 텍스트 파일 ISO 8859-1 문자셋으로 저장 한글은 유니코드(Unicode)로 변환되어 저장

5절. 검색 기능을 강화시킨 컬렉션 검색 기능을 강화시킨 컬렉션 (계층 구조 활용) 이진 트리 구조 TreeSet, TreeMap 이진 트리 구조 부모 노드와 자식 노드로 구성 왼쪽 자식 노드: 부모 보다 적은 값 오른쪽 자식 노드: 부모 보다 큰 값 정렬 쉬움 올림 차순: [왼쪽노드→부모노드→오른쪽노드] 내림 차순: [오른쪽노드→부모노드→왼쪽노드] 이진트리(binary tree) 사용하기 때문에 검색 속도 향상

5절. 검색 기능을 강화시킨 컬렉션 TreeSet 특징 주요 메소드 이진 트리(binary tree)를 기반으로 한 Set 컬렉션 왼쪽과 오른쪽 자식 노드를 참조하기 위한 두 개의 변수로 구성 주요 메소드 특정 객체를 찾는 메소드: first(), last(), lower(), higher(), … 정렬 메소드: descendingIterator(), descendingSet() 범위 검색 메소드: headSet(), tailSet, subSet()

5절. 검색 기능을 강화시킨 컬렉션 TreeMap 특징 주요 메소드 이진 트리(binary tree) 를 기반으로 한 Map 컬렉션 키와 값이 저장된 Map.Entry를 저장 왼쪽과 오른쪽 자식 노드를 참조하기 위한 두 개의 변수로 구성 주요 메소드 단일 노드 객체를 찾는 메소드: firstEntry(), lastEntry(), lowerEntry(), higherEntry(), … 정렬 메소드: descendingKeySet(), descendingMap() 범위 검색 메소드: headMap(), tailMap, subMap()

5절. 검색 기능을 강화시킨 컬렉션 Comparable과 Comparator TreeSet과 TreeMap의 자동 정렬 숫자(Integer, Double)타입일 경우에는 값으로 정렬 문자열(String) 타입일 경우에는 유니코드로 정렬 TreeSet과 TreeMap은 정렬 위해 java.lang.Comparable을 구현 객체 를 요구 Integer, Double, String은 모두 Comparable 인터페이스 구현 Comparable을 구현하고 있지 않을 경우에는 저장하는 순간 ClassCastException 발생

6절. LIFO와 FIFO 컬렉션 Stack 클래스 특징 주요 메소드 후입선출(LIFO: Last In First Out) 구조 응용 예: JVM 스택 메모리 주요 메소드

6절. LIFO와 FIFO 컬렉션 Queue 인터페이스 특징 주요 메소드 선입선출(FIFO: First In First Out) 응용 예: 작업 큐, 메시지 큐, … 구현 클래스: LinkedList 주요 메소드

7절. 동기화된(synchronized) 컬렉션 비 동기화된 컬렉션을 동기화된 컬렉션으로 래핑 Collections의 synchoronizedXXX() 메소드 제공 772 페이지의 예제 그림으로 쉽게 이해하도록!!!

8절. 병렬 처리를 위한 컬렉션 동기화(Synchronized) 컬렉션의 단점 컬렉션 요소를 병렬처리하기 위해 제공되는 컬렉션 하나의 스레드가 요소 처리할 때 전체 잠금 발생 다른 스레드는 대기 상태 멀티 스레드가 병렬적으로 컬렉션의 요소들을 빠르게 처리할 수 없음 컬렉션 요소를 병렬처리하기 위해 제공되는 컬렉션 ConcurrentHashMap 부분(segment) 잠금 사용 처리하는 요소가 포함된 부분만 잠금 나머지 부분은 다른 스레드가 변경 가능하게  부분 잠금 ConcurrentLinkedQueue 락-프리(lock-free) 알고리즘을 구현한 컬렉션 잠금 사용하지 않음 여러 개의 스레드가 동시에 접근하더라도 최소한 하나의 스레드가 성공하도록(안전하게 요소를 저장하거나 얻도록) 처리