ArrayList나 HashMap를 사용// 설명. 다루는 Iterator와 관련된 컬렉션의 제네릭 타입과 일치하는 제네릭을 반드시 명시(다운캐스팅 고민 없도록) Iterator<String> iter = ((LinkedList<String>) stringList).descendingIterator(); while (iter.hasNext()) { System.out.print(iter.next() + ", "); }

중복허용, 동등(e,h) 허용
일반적으로 다형성을 적용한 부모 인터페이스인 List로 선언을 많이 함.
// Wrapper 클래스에는 이미 compareTo라는 메서드가 오버라이딩 되어있다. Collections.sort(LIST); // Comparable 방식 Collections.sort(LIST, new AscendingPrice()); // Comparator 방식
주요 메서드
| List | |||||
|---|---|---|---|---|---|
| BASIC | .add() | .get() .size() | .set() | .remove() .clear() | .isEmpty() |
| LinkedList | ||
|---|---|---|
| .offer() | .peak() | .poll() |
| Stack | |||
|---|---|---|---|
| push() | peak() | search() | pop() |
| Set | ||
|---|---|---|
| .add() | .size() | .clear(), .isEmpty() |
| Map | ||
|---|---|---|
| .put(entry) .put(key, value) | .get(), .size() | .remove(key) |
hashMap은 중복을 덮어씌움
쿼리 말고 HashMap을 쓰기도 한다.
주요 메서드
map의 출력
keyset()으로 key(Set type)를 iterator로 반복하기
동일한 방법을 entryset()을 이용
Set<Map.Entry<String, String>> set = hashmap.entrySet(); Iterator<Map.Entry<String, String>> iterEntry = set.iterator(); while (iterEntry.hasNext()) { Map.Entry<String, String> entry = iterEntry.next(); System.out.println("key: " + entry.getKey() + ", " + "value: " + entry.getValue()); }
- REMIND: 동기화 가능 타입
StringBuilder → StringBuffer
ArrayList → Vector
HashMap → Hashtable
Map의 properties 중, 제네릭을 사용하지 않고 Key와 Value를 모두 String으로 사용하는 컬렉션(HashMap과 거의 유사)
기본 설정값을 properties로 관리한다.
(db 연결과 같은) 여러 연결 설정을 보통 properties로 관리한다.
.prop,.dat=> .xml => Annotation 방식(ex. @Value("driver"))
주요 메서드
| Properties | ||
|---|---|---|
| .store(기반 스트림, ""), .storeToXML(기반 스트림, ""), | .getProperty("key"), .load(기반 스트림), .loadFromXML(기반 스트림) | .setProperty("key", "value") |
Enum을 사용하는 이유(interface의 private static final 선언과의 차이점)
특징
Lazy 로딩 방식(one of 싱글톤)
values()로 배열을 반환받아 순회처리가 용이
타입 안정성을 보장
EnumSet.allOf(enumtype.class)로 set으로 바꿔 반복자 사용 가능
마치 클래스와 같이 활용 가능
public enum UserRole { GUEST("게스트"), CONSUMER("구매자"), PRODUCER("판매자"), ADMIN("관리자"); private final String DESCRIPTION; UserRole(String description) { this.DESCRIPTION = description; } public String getDescription() { return this.DESCRIPTION; } }
주요 메서드:
| Enum | |
|---|---|
| .name() | .ordinal() |