마케팅스프린트
[ GitHub ]

[ jungyijun@naver.com ]


  • Category
    • 마케팅 자동화
    • old posting
      • ChatGPT
      • Java
      • MySQL
      • JSP
      • Spring Framework
      • Node.js
Total
Today
Yesterday
hELLO · Designed By 정상우.
[Java] Set과 Map 그리고 iterator(반복자)
old posting/Java

[Java] Set과 Map 그리고 iterator(반복자)

2021. 3. 1. 17:54

* Set의 특징

1. 자료의 중복 저장이 허용되지 않는다.

2. 저장 순서가 유지되지 않는다. (인덱스가 없다.)

 

* HashSet의 특징 : 매우 빠른 검색 속도

* HashXXX는 "검색 속도 향상"을 쓰는 자료구조이다.

 

* TreeSet의 특징 : 데이터가 정렬된 상태로 저장(오름차순, 내림차순)

* TreeXXX는 "정렬"에 특화된 자료구조이다.

 

Set Method

* set.add() : 데이터 저장

* set.size() : Set의 크기

* set에서 데이터 검색 : set은 index가 없기 때문에 get() 메소드를 제공하지 않는다.  따라서 iterator(반복자)를 사용해야 한다.

* set에서 순서없이 값만 출력할 때는 enhanced-for를 사용하면 된다.

* set.remove(element) : 데이터 삭제, element가 있으면 삭제 후 true 리턴, 없으면 false 리턴

* set.remove()는 index가 아니라element이다.

* set은 데이터 변경을 할 수 있는 set() 메소드를 제공하지 않는다. 따라서 remove 후 add를 해서 변경하는 효과를 내야한다.

 

* TreeSet, HashSet 둘 다 iterator() 메소드를 사용하면 오름차순으로 정렬된다.

* TreeSet에서 descendingIterator() 메소드를 사용하면 내림차순으로 정렬된다.

 

Map : key-value 저장 방식의 자료구조

1. key는 중복되지 않는 값만 허용

2. value는 같더라도 key값이 다르면 저장 가능

3. 검색, 수정, 삭제를 할 때 key를 사용

 

* HashMap : hash값에 의해 순서가 정해지지만 출력에는 순서가 없다.

* LinkedHashMap : HashMap과 다르게 순서가 있으며 입력한 순서대로 출력된다.

* TreeMap : key값이 알파벳 순서대로 자동 정렬(Sort)된다. 출력 또한 알파벳 순서대로 출력된다.

 

Map Method

* map.put(Key, Value) : 데이터 저장, 같은 key값으로 데이터를 put하면 기존 값이 수정(replace)된다.

* map.size() : 저장된 데이터 개수 확인

* map.remove(key) : 데이터 삭제, 없는 key값을 삭제하면 null 리턴

* map.get(key) : 데이터 읽기, 없는 key값은 null 리턴

* map.ketSet() : key값을 전부 가져온다. (Set 타입)

* map.entrySet() : key값과 value값을 전부 가져온다.

* map.values() : value값을 전부 가져온다. (Collection 타입)

 

방법1 : HashMap에서 Iterator를 사용하여 순서를 부여하여 출력하기.

1.  HashMap의 keySet() 메소드를 사용해서 저장된 key값들로만 이루어진 set을 만든다.

ex) Set<Integer> keySet = map.keySet();

 

2. 1에서 만든 Set을 iterator() 메소드를 사용해서 Iterator를 생성 이후 출력

방법2 : Map.Entry 사용

* entrySet()은 Set<Entry<T, T>>을 리턴해준다.

* TreeMap에만 있는 KeySet을 만들어 내는 메소드

ex) NavigableSet<T> navi = tmap.navigableKeySet();

 

* TreeMap도 keySet을 만든 후 descendingIterator()를 사용하여 내림차순(역순)으로 정렬할 수 있다.

 

Collections Method

* Collections.sort() : 오름차순 정렬, String 타입이면 알파벳 순으로 정렬, Date 타입이면 날짜순으로 정렬된다.

* Collections.reverseOrder() : 역순 정렬

ex) Collections.sort(E, Collections.reverseOrder());

 

* Collections.sort() 메소드는 두번째 인자로 Comparator 인터페이스를 받을 수 있도록 해놓았으며,

   필요에 따라서 Comparator 인터페이스의 compare 메소드를 오버라이드하여 사용하면 된다.

저작자표시 (새창열림)
'old posting/Java' 카테고리의 다른 글
  • [Java] 쓰레드(Thread)와 Thread Method 그리고 java.io
  • [Java] 시간복잡도와 공간복잡도 그리고 내부클래스, 중첩클래스, 익명클래스
  • [Java] Generic 클래스와 Collection 그리고 List
  • [Java] Wrapper 클래스와 Auto-boxing 그리고 unboxing
마케팅스프린트
마케팅스프린트
쿠팡, 스마트스토어 자동화 솔루션

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.