2022. 10. 14. 21:50ㆍ카테고리 없음
3편 Map 컬렉션을 시작하겠습니다!
Map 컬렉션
- 키와 값으로 구성된 Map.Entry 객체를 저장하는 구조입니다.
- 키와 값은 모두 객체로 다룹니다.
- 값은 중복을 허용하지만 키는 중복을 허용하지 않습니다.
구현클래스) HashMap, Hashtable, LinkedHashMap, property...
주요 메소드 확인하고 시작하겠습니다.
전에 확인했던 list와 Set 과는 약간 다른 형태임을 알 수 있습니다. Key 와 Value 값으로 객체를 추가하는 put 메소드부터 다름을 확인 할 수 있습니다.
1) HashMap
- 키 객체는 hashCode() 와 equals() 를 재정의해 동등 객체가 될 조건을 정해야 합니다.
- 키 타입은 String을 많이 사용합니다.
- Map<Key, Value> map = new HashMap<Key, Value>();
역시 연습한번 해보겠습니다.
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("짱구", "엉덩이");
hm.put("유리", "토끼인형");
hm.put("맹구","돌맹이"); //...1
Scanner input = new Scanner(System.in);
System.out.println("프로그램을 시작합니다.");
while(true) { //...2 번 시작
System.out.println("연관 단어를 알고싶은 캐릭터를 쓰시오: ");
String word = input.next(); //...2번 끝
if(word.equals("exit")) { //...3번 시작
System.out.println("시스템을 종료합니다.");
break;
}//...3번끝
}
1. Map 컬렉션의 객체 추가 메소드인 put 메소드를 사용하여 첫번째 키값을 "짱구", Value 값을 "엉덩이"로 설정하여 추가했습니다.
2. while 문의 무한 반복문을 통하여 원하는 연관 단어를 알고싶은 캐릭터를 입력받아 출력해주는 반복문을 코딩했습니다.
즉, Key 값을 입력 받으면 Key 값에 맞는 value 값을 리턴 받는 것을 확인하는 것 입니다.
3. 무한 반복을 해놨기 때문에 종료할 코드를 설정했습니다.
--연습은 HashMap 만 해보겠습니다.--
2) Hashtable
- Key 객체를 만드는 법은 HashMap과 동일합니다.
- Hashtable은 스레드 동기화가 된 상태입니다.
3) properties
- Key와 값을 String 타입으로만 제한을 해 놓은 Map 컬렉션 입니다.
- properties는 파일이 프로퍼티인 파일을 읽을 때 주로 사용합니다.
=> properties 파일이란?
- 옵션 정보, 데이터베이스 연결 정보, 다국어 정보를 기록(텍스트 파일 활용)한 것입니다.
- 애플리케이션에서 주로 변경이 잦은 문자열을 저장합니다.
- 키와 값이 = 기호로 연결되어 있는 텍스트 파일입니다.
LIFO, FIFO 컬렉션
- LIFO(Last in First Out): 가장 첫번째로 들어온 객체가 가장 마지막에 나간다는 의미.
- FIFO(First in First Out): 가장 첫번째로 들어온 객체가 가장 먼저 나간다는 의미.
1) Stack 클래스
- 후입 선출
- Stack<E> stack = new Stack<E>();
주요 메소드 확인하겠습니다.
스택은 메소드가 간단하게 3개 밖에 없습니다. push는 데이터를 삽입, pop은 추출로 간단하게 생각하고 바로 넘어가겠습니다.
2) Queue
- 선입 선출
- Queue queue = new LinkedList();
주요 메소드 확인하겠습니다.
Queue는 추출하는 객체가 가장 처음에 들어갔던 순으로 추출이 됩니다.
제가 하는 컬렉션은 많이 빠진 부분이 있습니다. 하지만 제 생각에 중요한 것만 쓴 것이니 양해 부탁드립니다.
Map과 FIFO,LIFO 는 여기서 마무리하겠습니다.
부족한글 읽어주셔서 감사합니다-!😁