1. 자료(Data)와 자료 구조(Data Structure)
1)자료(데이터)를 어디에 어떻게 관리할 지...
-검색, 순회(iterate), 저장, 삭제, 변경...
2)데이터의 형태와 쓰임에 가장 적합한 자료구조를 쓰는 것은 매우 중요.
3)자료의 효율적인 관리는 프로그램의 수행 속도와 밀접한 관련이 있음.
2. 자료 구조 종류
1)한 줄로 자료를 관리하기(선형 자료구조)
-배열(Array)
-LinkedList
-스택(Stack)
-큐(Queue)
2)트리(tree)
3)그래프(graph)
4)해싱(hashing)
3. 배열(Array) 구현
1)동일한 데이터 타입을 순서에 따라 관리하는 자료 구조.
2)정해진 크기가 있음.
3)배열의 i번째 요소를 찾는 인덱스 연산이 빠름
4)JDK 클래스 : ArrayList, Vector...
컬렉션 프레임워크
1. 컬렉션 프레임워크
1)프로그램 구현에 필요한 자료 구조와 알고리즘을 구현해 놓은 라이브러리
2)java.util 패키지에 구현되어 있음.
3)Collection 인터페이스와 Map 인터페이스로 구성됨.
2. Collection 인터페이스
1)하나의 객체의 관리를 위해 선언된 인터페이스
2)하위에 List, Set 인터페이스
-List : 순서가 있는 자료 관리, 중복 허용.
구현 클래스 -- ArrayList, Vector, LinkedList, Stack, Queue
-Set : 순서가 정해져 있지 않음, 중복을 허용하지 않음.
구현 클래스 -- HashSet, Tree Set
3. Map 인터페이스
1)쌍으로 이루어진 객체를 관리하는데 필요한 여러 메서드가 선언되어 있음.
2)Map을 사용하는 객체 key-value쌍으로 되어 있고 key는 중복될 수 없음.
3)구현 클래스 - HashMap, TreeMap, HashTable, Properties
4. List 인터페이스
1)배열의 기능을 구현하기 위한 메서드가 선언됨.
2)ArrayList와 Vector
-객체 배열 클래스
-일반적으로 ArrayList를 더 많이 사용.
-Vector는 멀티 쓰레디 프로그래밍에서 동기화를 지원.
-동기화(synchronization) -- 두 개의 쓰레드가 동시에 하나의 리소스에 접근할 때
순서를 맞추어서 데이터의 오류가 방지되도록 함.
3)ArrayList와 LinkedList
-자료의 순차적 구조를 구현한 클래스
-ArrayList는 배열을 구현한 클래스로 논리적 순서와 물리적 순서가 동일함.
-LinkedList는 논리적으로 순차적인 구조지만, 물리적으로는 순차적이지 않을 수 있음.
4)Stack
-LIFO(Last In First Out) : 맨 마지막에 추가된 요소가 가장 먼저 꺼내지는 자료구조.
-최근 자료 가져오기...
-추가하기 : push / 삭제하기 : pop, top
-ArrayList나 LinkedList로 구현할 수 있음.
5)Queue
-FIFO(First In First Out) : 먼저 저장된 자료가 먼저 꺼내지는 자료구조.
-선착순, 대기열 등을 구현할 때 가장 많이 사용되는 자료구조.
-ArrayList나 LinkedList로 구현할 수 있음.
-추가하기 : enqueue / 삭제하기 : dequeue / 맨 앞 : front / 맨 뒤 : rear
5. Iterator로 순회하기
1)Collection의 객체를 순회하는 인터페이스
2)iterator( ) 메서드 호출
3)Iterator에 선언된 메서드
-boolean hashNext( ) : 이후에 요소가 더 있는지를 체크하는 메서드. (0번부터 체크)
요소가 있다면 true를 반환함.
-E next( ) : 다음에 있는 요소를 반환함.
6. Set 인터페이스
1)Collection 하위의 인터페이스
2)중복을 허용하지 않음.
3)List는 순서 기반이지만 Set은 순서가 없음.
4)get (i) 메서드가 제공되지 않음 - > Iterator 로 순회 필요.
5)저장된 순서와 출력 순서는 다를 수 있음.
6)아이디, 주민번호, 사번 등 유일한 값이나 객체를 관리할 때 사용.
7)TreeSet, HashSet 클래스
7. HashSet 클래스
1)Set 인터페이스를 구현한 클래스
2)중복을 허용하지 않으므로 저장되는 객체의 논리적 동등함 여부를 알기 위해
equals( )와 hashCode( ) 메서드를 재정의 해야함.
8. Map 인터페이스
1)key - value pair의 객체를 관리하는데 필요한 메서드가 정의됨.
2)key는 중복될 수 없음.
3)검색을 위한 자료구조.
4)key를 이용하여 값을 저장하거나 검색, 삭제할 때 사용함.
5)구현 클래스 -- HashMap, Properties, TreeMap, HashTable
9. HashMap 클래스
1)Map 인터페이스를 구현한 클래스 중 가장 일반적으로 사용하는 클래스
2)pair 자료를 쉽고 빠르게 관리할 수 있음.
'📒 education archive > 🎀JAVA' 카테고리의 다른 글
[국비 학원 기록/자바] 예외처리 종류, try catch, throw, throws (0) | 2021.10.21 |
---|---|
[국비학원 기록/자바] 람다식, 스트림 (0) | 2021.10.19 |
[국비 학원 기록/자바] Object 클래스, String 클래스, Class 클래스, Wrapper 클래스 (0) | 2021.10.18 |
[국비 학원 기록/자바]객체지향(OOP) 09.인터페이스, 인터페이스의 여러 가지 요소(default , static, private 메서드), 다중 상속 (0) | 2021.10.13 |
[국비 학원 기록/자바]객체지향(OOP) 08.추상클래스, 인터페이스 (0) | 2021.10.13 |