1 분 소요

Map 인터페이스를 구현한 대표적인 Map 컬렉션.

Map 인터페이스를 상속하고 있어, Map 성질을 그대로 가지고 있음.

Map은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조.

HashMap 선언

HashMap<String,String> map1 = new HashMap<String,String>();//HashMap생성
HashMap<String,String> map2 = new HashMap<>();//new에서 타입 파라미터 생략가능
HashMap<String,String> map3 = new HashMap<>(map1);//map1의 모든 값을 가진 HashMap생성
HashMap<String,String> map4 = new HashMap<>(10);//초기 용량(capacity)지정
HashMap<String,String> map5 = new HashMap<>(10, 0.7f);//초기 capacity,load factor지정
HashMap<String,String> map6 = new HashMap<String,String>();

HashMap 값 추가

HashMap<Integer,String> map = new HashMap<>();
map.put(1,"a"); //값 추가 key와 value값을 넣어야 함
map.put(2,"b");
map.put(3,"c");

HashMap 값 삭제

HashMap<Integer,String> map = new HashMap<>();
map.put(1,"a"); 
map.put(2,"b");
map.put(3,"c");

map.remove(1); //key값 1 제거
map.clear(); //모든 값 제거

HashMap 값 출력

map.put(1,"a"); //값 추가
map.put(2,"b");
map.put(3,"c");
System.out.println(map); // {1=a, 2=b, 3=c}
System.out.println(map.get(1)); // a

//KeySet() 활용
for(Integer i : map.keySet()){
    System.out.println("[Key]:" + i + " [Value]:" + map.get(i));
}
// [Key]:1 [Value]:a
// [Key]:2 [Value]:b
// [Key]:3 [Value]:c

Iterator

**Iterator<데이터타입> iterator명 = 컬렉션.iterator();**

컬렉션 프레임워크에서 값을 가져오거나 삭제할 때 사용한다.

장점

  • 모든 컬렉션 프레임워크에 공통으로 사용 가능
  • 컬렉션 프레임워크에서 쉽게 값을 가져오고 제거할 수 있음
  • 3개의 메소드만 알면 돼서 사용하기 쉬움

단점

  • 처음부터 끝까지의 단방향 반복만 가능
  • 값 변경 및 추가 불가능
  • 대량의 데이터를 제어할 때 속도가 느림

Iterator.hasNext()

Iterator 안에 다음 값이 들어있는지 확인(true, false)


Iterator.next()

iterator의 다음 값 가져오기


Iterator.remove()

iterator에서 next() 시에 가져왔던 값을 컬렉션(List, Set, Map) 등에서 삭제

반드시 next() 후에 사용해야 함


Iterator 사용

HashMap<Integer,String> map = new HashMap<Integer,String>();

//entrySet().iterator()
Iterator<Map.Entry<Integer, String>> entries = map.entrySet().iterator();
while(entries.hasNext()){
    Map.Entry<Integer, String> entry = entries.next();
    System.out.println("[Key]:" + entry.getKey() + " [Value]:" +  entry.getValue());
}
//[Key]:1 [Value]:a
//[Key]:2 [Value]:b
//[Key]:3 [Value]:c

//keySet().iterator()
Iterator<Integer> keys = map.keySet().iterator();
while(keys.hasNext()){
    int key = keys.next();
    System.out.println("[Key]:" + key + " [Value]:" +  map.get(key));
}
//[Key]:1 [Value]:a
//[Key]:2 [Value]:b
//[Key]:3 [Value]:c

카테고리: ,

업데이트:

댓글남기기