basic/java 이론

day 18 - [java api] Iterator 반복자, HashMap class, LinkedList class, Stack class, Set<E> interface, properties class

못지(Motji) 2021. 5. 18. 16:19

java.util Package

Iterator<E> 반복자 Interface

📑 java api 바로가기 Iterator<E>

• Vector, ArrayList, Set 등 요소가 순서대로 저장된 컬렉션에서 요소를 순차적으로 검색할때 Iterator 인터페이스를 사용하면 편리함

 

✔ 주요메소드

리턴타입 메소드명 설명
boolean hasNext() 접근할 다음 요소가 있으며 true
E next() 다음 요소 리턴
void remove() 마지막으로 리턴된 요소 제거

HashMap<K, V> Class

📑 java api 바로가기 HashMap<K,V>

• Map<K, V> interface의 구현 클래스

• 키(key)와 값(value)의 쌍으로 구성되는 요소를 다룬다

• K는 키로 사용할 데이터 타입을 V는 값으로 저장할 데이터 타입의 제네릭타입을 명시해준다.

• 데이터 저장시, key와 value를 이용하여 해시함수를 실행 해시함수가 리턴하는 위치에 키와 값을 저장하는 형태이다

• 반대로 데이터를 불러올때 키를 이용해서 꺼내오는데 키를 이용하여 동일한 해시함수를 실행하여 값이 저장된 위치를 알아내어 값을 리턴한다

• 해쉬맵은 해시함수를 통해 키와 값이 저장되는 위치를 결정하므로 사용자는 그 위치를 알 수 없고, 삽입되는 순서와 위치 또한 관계가 없다

• index가 없다. index 대신 key값으로 데이터 접근

• index를 원하는 값을 지정하는 사용자 지정 index라고 할 수도 있다.

• key값은 중복 허용이 안되므로 유일한 값이여야 한다.

 

✔ 장단점

  • 삽입, 삭제 시간이 매우 빠르다
  • 검색은 더욱 빠르다

✔ 주요메소드

리턴타입 메소드명 설명
V put(K key, V value) key와 value 쌍을 저장
V get(Object key) key에 해당하는 value 리턴, 없으면 null 리턴
int size() 요소의 개수 리턴
boolean isEmpty() 비어있으면 true
void clear() 모든 요소 삭제
V remove(Object key) key에 해당하는 값을 찾아 key/value 모두 삭제
boolean containsKey(Object key) key를 포함하고 있으면 true
boolean cintainsValue(Object value) value를 포함하고 있으면 true
Set<K> keySet() 모든 키를 담은 Set<K> 컬렉션 리턴

LinkedList<E> Class

📑 java api 바로가기 LinkedList<E>

• List<E> interface 구현 클래스

• 요소들을 양방향으로 연결하여 관리한다는 점을 제외하고는 vector, ArrayList와 거의 같다.

• 맨 앞과 맨 뒤를 가르키는 head, tail 레퍼런스 가지고 있어 맨 앞이나 맨뒤, 중간에 요소 삽입이 가능하며 인덱스로 요소 접근 가능

ArrayList : 순차접근

[1|2|3]

LinkedList : 순차지만 링크를 바로 찾아감

[1]-[2]  -[3]-  [4]

Stack<E> Class

📑 java api 바로가기 Stack<E>

• 이름 처럼 자료가 위로 탑처럼 쌓이는 구조 (하노이의 탑)

• 제한적으로 접근할 수 있는 나열식 구조로 접근 방법은 마지막에서만 접근 가능

• LIFO(Last In First Out)

• 인터넷에서 뒤로가기 앞으로가기 이럴때 주로 씀

 

✔ 주요메소드

리턴타입 메소드명 타입
boolean  empty() 안이 비었는지 알려줌
E push(E item) 밀어넣어준다
E pop() 맨 위에 있는거 떼서 줌 (제거됨)
E peek() 제거하지 않고 위에있는것 리턴해줌

Set<E> Interface

📑 java api 바로가기 Set<E>

• HashSet<E> class로 구현해 놓음

• 순서가 없고 중복 요소가 없는 컬렉션으로 동일한 값 저장 불가

properties Class

📑 java api 바로가기 Properties

• HashMap의 구버전인 HashTable을 상속받아 구현한 클래스

• K, V 형태로 데이터를 저장

• 주로 어플리케이션의 환경설정과 관련된 속성을 저장하는데 사용한다

 

✔ 주요 메소드

리턴타입 메소드명 설명
String getProperty(String key) 키를 이용하여 값을 꺼내기
Object setProperty(String key, String value) 값저장
void load(InputStream in) 외부파일을 스트림으로 읽은것을 로드시킴

☑ load 메소드 사용법

FileInputStream fis = new....(외부 파일경로);
properties p = new Properties();
try{
p.load(fis);
}