자료구조(Data Structure)
- 자료를 구조적으로 정리하는 것을 자료구조(Data Structure)fkrh gksek.
- 구조적이란 자료를 효율적으로 사용할 수 있게 만드는 것
- 모든 사용 데이터를 db에 저장할 수는 없는 일
- java.util.* 패키지의 자바 컬렉션 프레임워크(JCF)에서 자료구조 방법 제공
- 배열의 정적인 한계를 극복하기 위해서
- set계열, list계열, map계열
컬렉션 프레임워크(JCF)
- Colletion인터페이스를 구현하는 클래스
- 객체를 저장하고 핸들하는 작업을 수행
- 동적으로 필요할 때 메모리를 확장할 수 있는 장점
- 프로그램 실행시의 소형데이터베이스 가능
- 데이터의 수정, 삭제, 검색 삽입의 기능
- 대표적으로 Vector와 HashTable이 있음
- 컬렉션 클래스는 다음의 인터페이스를 구현
- java.util.Collection
-> 순서 없는 단순한 요소들의 집합
- java.util.Set
-> 중복을 허용하지 않는 요소들의 집합
- java.util.List
-> 순차적 나열, 순서지정이 가능한 요소들의 집합
- java.util.Map
-> Key와 Key에 대응하는 값으로 이루어진 구조
- java.util.SortedSet
-> 값들이 정렬된 Set
- java.util.SortedMap
-> key가 정렬된 Map
Set
- 순서가 없고 중복할 수 없는 집합
- set계열인 HashSet의 객체를 생성
- set계열은 인터페이스Set을 구현한 클래스
- add, clear, size, remove 메서드
- object 타입으로 리턴. <- 다형성을 처리하기 위해
- toArray 오브젝트 배열로 리턴
- 배열과 마찬가지로 length 사용
- colletion 인터페이스랑 같은 메서드를 갖고 있음
Set 메서드
-> boolean add(Object obj)
: 객체를 더하기 위한 메소드 / 만일 호출후 컬렉션이 변하면 true반환
-> boolean addAll(Collection c)
: 객체를 더하기 위한 메소드 / 만일 호출후 컬렉션이 변하면 true반환
-> boolean contains(Object obj)
: 내용을 조사하기 위한 메소드
-> boolean containsAll(Collection c)
: 내용을 조사하기 위한 메소드
-> boolean isEmpty()
: 내용을 조사하기 위한 메소드
-> int size()
: 내용을 조사하기 위한 메소드
-> Iterator iterator()
: 컬렉션의 요소를 방문할 때 사용하는 반복자 반환
-> void clear()
: 객체 제거를 위한 메소드 / 호출 후 컬렉션이 변화면 true 반환
-> boolean remove(Object obj)
: 객체 제거를 위한 메소드 / 호출 후 컬렉션이 변화면 true 반환
-> boolean removeAll(Collection c)
: 지정된 조건자에 정의된 조건과 일치하는 요소를 모두 제거
-> boolean retainAll(Collection c)
: 두 개의 List 중복 비교. 같다면 true, 틀리면 false를 리턴
-> Object[] toArray()
: 배열로의 전환
-> Object[] toArray(Object array[])
: 배열로의 전환. 파라미터를 넣음으로써 배열의 크기가 달라짐.
List
- 꼬리를 물고 일렬로 나열하는 것과 같음 순서는 있고 중복 가능
Map
- 키와 값으로 대상을 찾음. 키는 중복될 수 없음.