일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 입출력
- antbuild
- 맥숨긴폴더
- 폴더재설정
- 날짜클래스
- java
- 터미널명령어
- equals
- throws
- 맥Ant설치
- 널포인트
- 맥톰캣설치
- 랜덤클래스
- OutputStream
- MacTomcat
- NullPointException
- 태그를 입력해 주세요.
- random
- 맥단축키
- githubblog
- 타이머테스크
- 맥명령어
- 이클립스 ANt
- 포맷팅
- 윈도우Ant
- InputStream
- auto boxing
- githubpage
- Ant설치
- API
- Today
- Total
Platonic의 조금은 재밌는 일상
Java Collections / 자료구조 / List / Set / Map / Tree / Stack / Iterator / Enumeration 본문
Java Collections / 자료구조 / List / Set / Map / Tree / Stack / Iterator / Enumeration
Platonic 2015. 10. 27. 09:17java.util패키지의 Collections Framework
JDK1.5 이후의 Generic 문법
Collections Framework이 기존에는 모든 객체자료형들을 처리하기 위해서 java.lang.Object타입을 사용
JDK1.5이후에는 컴파일 시점에 자료구조에서 사용되는 Type을 체크하는 Generic문법을 사용하는 방식으로 변화
Collections Framework에서 중요한 사항들
자료구조들의 종류는 결국은 어떤 구조에서 얼마나 빨리 원하는 데이터를 찾는가에 따라 결정된다.
순서를 유지할 것인가?
중복을 허용할 것인가?
몇 번 만에 데이터를 찾아낼 수 있는가?
다른 자료구조들에 비해서 어떤 단점과 장점을 가지고 있는가?
equals( )와 hashCode( )
자료구조 안에 들어가는 객체들은 단순히 메모리상의 위치 비교를 하는 것이 아니다.
때로는 메모리가 달라도 검색이 가능해야 하는데 이를 위해서 java.lang.Object의 equals( )와 hashCode( )메소드가 사용된다.
equals( ): 메모리상의 위치가 다르다고 해도 검색이 가능하도록 설계하려면 override해 준다.
hashCode( ): 해싱 알고리즘을 사용할 때 객체들을 분류하고 보관할때 기준이 되는 hash value를 만들어 내는 메소드
Set 계열 특징: 순서가 없고, 중복을 허용하지 않음 장점: 빠른 속도 단점: 단순 집합의 개념으로 정렬하려면 별도의 처리가 필요하다. 구현 클래스 HashSet TreeSet
Map계열 특징: Key(키)와 Value(값)으로 나뉘에 데이터 관리, 순서는 없으며, 키에 대한 중복은 없음 장점: 빠른 속도 단점: Key의 검색 속도가 검색 속도를 좌우 구현 클래스 HashMap TreeMap
Tree 계열
각 Element(Node)들의 균형된 분포가 관건
Balanced Tree - Node들의 분포가 고른 Tree구조
어떤 Node를 찾아도 검색 depth가 일정하게 구성
구현 클래스
TreeSet
TreeMap
Stack 클래스
특징: 아래가 막혀있는 순서 있는 구조
장점: 위쪽의 데이터를 빈번하게 접근하는 경우에 유리
단점: 선형 리스트의 단점
메소드: push( ), pop( ), peek( )
예: FILO(first in last out)
가장 최신것이 가장 빨리 나온다.
Iterator / Enumeration
Enumeration(JDK1.0) / Iterator(JDK1.2)
거의 모든 자료구조 클래스들이 구현하는 인터페이스
어떠한 자료구조 클래스에 관계없이 자료들을 조회하고 싶은 경우에 사용
Interface에서 정의된 기능들
아직 조회할 데이터가 남아 있는가
Enumeration - hasMoreElements( ) / Iterator - hasNext( )
다음 데이터를 가져온다
Enumeration - nextElement( ) / Iterator – next( )
데이터의 삭제
Iterator – remove( )
'Programming 프로그래밍 > Java' 카테고리의 다른 글
java I/O /InputStream / OutputStream / (0) | 2015.10.27 |
---|---|
NullPointException / ArrayIndexOutOfBoundsException / NumberFormatException (0) | 2015.10.27 |
Java Try / catch / 예외 처리 Exception (0) | 2015.10.27 |
Java Formatter (0) | 2015.10.27 |
Java API Timer/TimerTask (0) | 2015.10.27 |