슬라이드 1

Similar documents
chap 5: Trees

07 자바의 다양한 클래스.key

항상쌍 ( 키, 값 ) 으로만데이터를저장하는클래스 의최고조상 : Map - Map을조상으로하는클래스, HashTable, HashMap, LinkedHashMap, TreeMap 등은데이터를저장할때반드시 키 와 값 의쌍으로저장한다. - Map에저장되는 키 는중복되면안되

Microsoft PowerPoint - Lect07.pptx

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

gnu-lee-oop-kor-lec11-1-chap15

JVM 메모리구조

Microsoft PowerPoint - java2-lecture4.ppt [호환 모드]

chap 5: Trees

PowerPoint Presentation

JAVA PROGRAMMING 실습 08.다형성

슬라이드 1

Microsoft PowerPoint - 08-Queue.ppt

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Microsoft PowerPoint - 08-chap06-Queue.ppt

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

PowerPoint Presentation

JUNIT 실습및발표

Chapter 4. LISTS

PowerPoint Presentation

슬라이드 1

untitled

adfasdfasfdasfasfadf

선형대수학 Linear Algebra

Microsoft PowerPoint - 제4장-스택과큐.pptx

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

슬라이드 1

제 11 장 다원 탐색 트리

08장.트리

C 언어 강의노트

Microsoft PowerPoint - Introduction to Google Guava.pptx

03_queue

리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : ( ㄱ, ㄴ

1장. 리스트

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - CSharp-2-기초문법

Microsoft PowerPoint - CSharp-10-예외처리

06장.리스트

슬라이드 1

Microsoft PowerPoint - chap10_tree

Microsoft PowerPoint - java2-lecture3.ppt [호환 모드]

7장

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형

슬라이드 1

정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2

JAVA PROGRAMMING 실습 05. 객체의 활용

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

Microsoft PowerPoint - 제8장-트리.pptx

PowerPoint Presentation

제11장 프로세스와 쓰레드

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

Microsoft Word - java18-1-final-answer.doc

Chapter 4. LISTS

Microsoft PowerPoint - 04-UDP Programming.ppt

Visual Basic 반복문

1

슬라이드 1

<4A DC1DFBFE4C5ACB7A1BDBA2E687770>

Lab 3. 실습문제 (Single linked list)_해답.hwp

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

PowerPoint Presentation

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

C++ Programming

슬라이드 1

UI TASK & KEY EVENT

03장.스택.key

Microsoft PowerPoint - lec07_tree [호환 모드]

PowerPoint 프레젠테이션

Microsoft PowerPoint - 07-chap05-Stack.ppt

11. 컬렉션과제네릭 이장에서는자바에서객체들을저장할수있는동적인배열공간을갖는컬렉션프레임워크 (Collection Framework) 과제네릭 (Generic) 기능에대해설명하기로하겠습니다. 자바초기버전에서는객체를저장할수있도록 Vector, Enumeration 클래스등간

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

슬라이드 1

PowerPoint 프레젠테이션

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를

JAVA PROGRAMMING 실습 09. 예외처리

Design Issues

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table

Ch.1 Introduction

가시성 설계하기

Microsoft PowerPoint - Chap5 [호환 모드]

No Slide Title

Microsoft PowerPoint - 6장 탐색.pptx

Microsoft PowerPoint - 2강

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

04장.큐

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - ch07 - 포인터 pm0415

PowerPoint Presentation

C# Programming Guide - Types

PowerPoint Presentation

2. QUEUE OPERATIONS Initialize the queue Insert to the rear of the queue (also called as Enqueue) Remove (Delete) from the front of the queue (also ca

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

11장 포인터

Transcription:

컬렉션프레임워크 (Collection Framework) 의정의 - 다수의데이터를쉽게처리할수있는표준화된방법을제공하는클래스들 - 데이터의집합을다루고표현하기위한단일화된구조 (architecture) - JDK 1.2 이전까지는 Vector, Hashtable, Properties와같은컬렉션클래스로서로다른각자의방식으로처리 - 컬렉션프레임워크는다수의데이터를다루는데필요한다양하고풍부한클래스들을제공하므로프로그래머의부담을상당부분덜어준다.

컬렉션프레임워크 (Collection Framework) 의종류 인터페이스이름 List Set Map 특징순서가있는데이터의집합. 데이터의중복을허용한다. 예 ) 대기자의명단구현클래스 : ArrayList, LinkedList, Stack, Vector 순서를유지하지않는데이터의집합. 데이터의중복을허용하지않는다. 예 ) 양의정수집합, 소수의집합구현클래스 : HashSet, TreeSet 키 (key) 와값 (value) 의쌍 (pair) 으로이루어진데이터의집합순서는유지되지않으며, 키는중복을허용하지않고, 값은중복을허용한다. 예 ) 우편번호, 지역번호 ( 전화번호 ) 구현클래스 : HashMap, TreeMap, Hashtable, Properties

컬렉션프레임워크 (Collection Framework) 의사용 - 실제개발시에다루고자하는데이터의특징을파악하고어떤컬렉션프레임워크를사용해야하는지결정 - 컬렉션프레임워크의모든클래스들은 List, Set, Map 중하나를구현 - List와 Set은 Collection 인터페이스를상속받도록설계됨 - Vector, Hashtable, Properties와같은컬렉션클래스들은컬렉션프레임워크이전부터존재 - Vector나 Hashtable과같은클래스대신 ArrayList나 HashMap 사용

Collection 인터페이스에정의된메서드들 (1/2) 메서드 boolean add(object o) boolean addaa(collection c) 사용예제 지정된객체 (o) 또는 Collection(c) 의객체들을 Collectoin 에추가 void clear() Collection 의모든객체를삭제한다. boolean contains(object o) boolean containsall(collection c) 지정된객체 (o) 또는 Collection(c) 의객체들이 Collection 에포함되어있는지확인한다. boolean equals(object o) 동일한 Collection인지비교한다. int hascode() Collection의 hash code를반환한다. boolean isempty() Collection이비어있는지확인한다. Iterator iterator() Collection의 Iterator를반환한다. boolean remove(object o) 지정된객체를삭제한다. boolean removeall(collection c) 지정된 Collection에포함된객체들을삭제한다. boolean retainall(collection c) 지정된 Collection 에포함된객체만을남기고다른객체들은 Collection 에서삭제한다. 이작업으로인해 Collection 에변화가있으면 true, 변화가없으면 false 를반환한다.

Collection 인터페이스에정의된메서드들 (2/2) 메서드사용예제 int size() Collection에저장된객체의개수를반환한다. Object[] toarray() Collection 에저장된객체를객체배열 (Object []) 로반환 Object[] toarray(object[] a) 지정된배열에 Collection 의객체를저장해서반환한다.

List 인터페이스에정의된메서드들 메서드 void add(int index, Object element) boolean addall(int index, Collection c) 사용예제 지정된위치 (index) 에객체 (element) 또는컬렉션에포함된객체들을추가한다. Object get(int index) 지정된위치 (index) 에있는객체를반환한다. int indexof(object o) int lastindexof(object o) ListIterator listiterator() ListIterator ListIterator(int index) Object remove(int index) 지정된객체의위치 (index) 를반환한다. (List 의첫번째요소부터순방향으로찾는다.) 지정된객체의위치 (index) 를반환한다. (List 의마지막요소부터역방향으로찾는다.) List 의객체에접근할수있는 ListIterator 를반환한다. 지정된위치 (index) 에있는객체를삭제하고삭제된객체를반환한다. Object set(int index, Object element) 지정된위치 (index) 에객체 (element) 를저장한다. List sublist(int fromindex, int toindex) 지정된범위 (fromindex 부터 toindex) 에있는객체를반환한다.

Map 인터페이스에정의된메서드들 (1/2) 메서드 사용예제 void clear() Map 의모든객체를삭제한다. boolean containkey(object key) boolean containsvalue(object value) set entryset() 지정된 key 객체와일치하는 Map 의 key 객체가있는지확인한다. 지정된 value 객체와일치하는 Map 의 value 객체가있는지확인한다. Map 에저장되어있는 key-value 쌍을 Map.Entry 타입의객체로저장한 Set 으로반환한다. boolean equals(object o) 동일한 Map 인지비교한다. Object get(object key) 지정한 key 객체에대응하는 value 객체를찾아서반환 int hashcode() 해시코드를반환한다. boolean isempty() Map이비어있는지확인한다. Set keyset() Map에저장된모든 key객체를반환한다. Object put(object key, Object value) Map에 key-value로연결 (mapping) 하여저장한다.

Map 인터페이스에정의된메서드들 (2/2) 메서드 사용예제 void putall(map t) 지정된 Map의모든 key-value 쌍을추가한다. Object remove(object key) 지정한 key 객체와일치하는 key-value 객체를삭제 int size() Map 에저장된 key-value 쌍의개수를반환한다. Collection values() Map 에저장된모든 value 객체를반환한다.

컬렉션프레임워크의상속관계 (1/2) Collection Map List Set Vector ArrayList LinkedList HashSet SortedSet Stack TreeSet

컬렉션프레임워크의상속관계 (2/2) Map Hashtable HashMap SortedMap LinkedHashMap TreeMap

ArrayList 와 LinkedList 의비교 - 순차적으로추가 / 삭제하는경우에는 ArrayList 가빠르다. - 중간데이터를삭제하는경우에는 LikedList 가빠르다. 컬렉션이름읽기 ( 접근시간 ) 추가 / 삭제비고 ArrayList 빠르다느리다 순차적인추가삭제는빠름. 비효율적인메모리사용 LinkedList 느리다빠르다데이터가많을수록접근성이떨어짐

Stack 클래스의메서드들 메서드 사용예제 boolean empty() Stack 이비어있는지알려준다. Object peek() Stack 의맨위에저장된객체를반환한다. Stack 에서꺼내지는않는다. 비었을때 null 을반환한다. Object pop() Stack 의맨위에저장된객체를꺼낸다. Object push(object item) Stack 에객체 (item) 을저장한다. int search(object o) Stack 에서주어진객체 (o) 를찾아서그위치를반환한다.( 배열과는달리 1 부터시작한다.)

Queue 인터페이스의메서드들 - JAVA 에서큐는 Queue 인터페이스로만정의해놓았다. 메서드 Object element() boolean offer(object o) Object peek() 사용예제 삭제없이저장된요소를읽어온다. peek() 과다른점은큐가비었을때 Exception 을발생시킨다.(peek() 은 null 을반환 ) 큐에객체를저장한다. 성공하면 true, 실패하면 false 를반환 큐에저장된객체를삭제없이읽어온다. 큐가비었으면 null 을반환 Object poll() 큐에서꺼내온다. 비어있으면 null 을반환한다. Object remove() 큐에서꺼내온다. 비어있으면예외를발생시킨다.

TreeSet 의정의 - 이진검색트리 (binary search tree) 의형태로데이터를저장하는컬렉션클래스 - 이진검색트리는정렬, 검색에서뛰어난성능을보이는구조 - Set인터페이스를구현했으므로중복된데이터의저장을허용하지않으며정렬된위치에저장되므로저장순서를유지하지않는다. - 이진트리는링크드리스트로연결되며최대 2개의노드를연결 - 루트 (root) 로불리는하나의노드에서시작해서계속확장된다. - 이진검색트리는왼쪽에는부모노드보다작은값을위치시키고, 오른쪽에는부모노드보다큰값을위치시킨다.

이진검색트리의정의 - 모든노드는최대두개의자식노드를가질수있다. - 왼쪽자식노드의값은부모노드의값보다작다. - 오른쪽자식노드의값은부모노드의값보다크다. - 검색과정렬에유리하다.

이진검색트리의구조 0x100 5 0x200 5 0x200 null 7 null 1 7 0x100 null 1 null

이진검색트리의생성 - 7, 4, 9, 1, 6 의순서로데이터가삽입 7 7 7 7 4 4 9 4 9 7 4 9 1 1 6

Hashtable 과 HashMap - Vector와 ArrayList의관계와같이 Hashtable은구버전이다. - Hashtable보다는 HashMap의사용을권장한다. - HashMap은 Map인터페이스를구현한것으로, Map의특징을갖는다. - Map은키 (key) 와값 (value) 을묶어서하나의데이터로저장한다. - 해싱 (hashing) 을사용하기때문에많은양의데이터검색에매우우수하다.

HashMap - 키와값을각각 Object 형태로저장한다. 즉, (Object, Object) 의형태로저장한다. 키 (key) 컬렉션내의키 (key) 중에서유일한값이어야한다. 값 (value) 키 (key) 와다르게데이터의중복을허용한다. - 키는저장된값을찾는데사용되므로컬렉션내에서유일해야한다. 즉, HashMap 에저장된데이터를하나의키로검색했을때결과가 오직하나이어야한다.