컬렉션(Queue, Set, Map)

김나영·2023년 6월 12일
0

Java 문법 종합반

목록 보기
9/21

2. Queue

  • First In First Out

  • 생성자가 없는 인터페이스

  • 추가 : intQueue.add({추가할 값}) 형태로 값을 맨 위에 추가

  • 조회 : intQueue.peek() 형태로 맨 아래값을 조회

  • 꺼내기 : intQueue.poll() 형태로 맨 아래값을 꺼냄 (꺼내고나면 삭제됨)

Queue<Integer> intQueue = new LinkedList<>(); // 선언 및 생성
intQueue.add(1);
intQueue.add(5);
intQueue.add(9);
while (!intQueue.isEmpty()) {
    System.out.println(intQueue.poll()); // 1 5 9 순으로 출력
}
intQueue.add(1);
intQueue.add(5);
intQueue.add(9);
System.out.println(intQueue.peek()); // 맨 처음 값인 1 출력
System.out.println(intQueue.size()); // 3

3. Set

  • 집합 : 순서 없고 중복 없음!!
  • 순서가 보장되지 않는 대신 중복을 허용하지 않도록 하는 프로그램에서 사용할 수 있는 자료구조
  • 그냥 사용 가능하지만 HashSet, TreeSet 등으로 응용해서 같이 사용 가능
  • 생성자가 없는 껍데기라서 바로 생성할 수 없음!!!
  • 생성자가 존재하는 HashSet을 이용해서 Set을 구현해 볼 수 있음
  • 추가 : intSet.add({추가할 값}) 값을 맨 위에 추가
  • 조회 : intSet.get({초회할 순번})
  • 삭제 : intSet.remove({삭제할 값}) 삭제할 값을 직접 지정
  • 포함확인 : intSet.contains({포함확인 할 값}) boolean 값으로 응답
Set<Integer> intSet = new HashSet<>(); // 선언 및 생성
intSet.add(1);
intSet.add(12);
intSet.add(5);
intSet.add(9);
intSet.add(1);
intSet.add(12);
for(Integer value : intSet) {
   System.out.println(value); // 1 5 9 12 출력
}
Set<Integer> intSet = new HashSet<>(); // 선언 및 생성
intSet.add(1);
intSet.add(12);
intSet.add(5);
intSet.add(9);
intSet.add(1);
intSet.add(12);
// contains ( true or false)
System.out.println(intSet.contains(2)); // false
System.out.println(intSet.contains(5)); // true

4. Map

  • key -> value pair -> 중요!!!!
  • key라는 값으로 unique하게 보장이 돼야 함!!
  • HashMap, TreeMap으로 응용!!
  • 추가 : intMap.put({추가할 Key값},{추가할 Value값}) key에 Value값 추가
  • 조회 : intMap.get({조회할 Key값}) Key에 있는 Value값을 조회
  • 전체 key 조회 : intMap.keySet() 전체 key 값들을 조회
  • 전체 value 조회 : intMap.values() 체 value 값들을 조회
  • 삭제 : intMap.remove({삭제할 Key값}) Key에 있는 Value값을 삭제
Map<String, Integer> intMap = new HashMap<>(); // 선언 및 생성
// 키 값
intMap.put("일", 11);
intMap.put("이", 12);
intMap.put("삼", 13);
intMap.put("삼", 14); // 중복 key
intMap.put("삼", 15); // 중복 key
// key 값 전체 출력(향상된 for문)
for(String key: intMap.keySet()) {
   System.out.println(key); // 이 일 삼 출력
}
// value 값 전체 출력(향상된 for문)
for(Integer key: intMap.values()) {
    System.out.println(key); // 12 11 15 출력 (마지막에 쓴 15로 덮어쓰기 함)
}
 System.out.println(intMap.get("삼")); // 15 출력
}
Map<String, Integer> // key : String value : Integer
keySet() : key만 뻬서 배열로 만드는 것
get() : key를 가지고 value를 찾아옴

0개의 댓글