ArrayList 와 HashMap

준우·2022년 4월 21일
0

Java

목록 보기
6/30
post-thumbnail

ArrayList

배열(Array)은 변수 하나에 값을 여러개 넣을 수 있고,
넣은 순서대로 저장되어 index로 값을 빠르게 찾을 수 있다는 점은 유용하지만
생성과 동시에 크기를 정해야하고, 나중에 크기를 변경할 수 없다는 단점이 있다.
배열의 장점은 유지하면서 이런 불편함은 없는 자료형이 바로 ArrayList 이다.

우선 ArrayList를 사용하려면 아래와 같이 import를 해야한다.

import java.util.ArrayList;

그리고 ArrayList의 선언은 아래와 같은 형태로 한다.

ArratList<변수 타입> 변수이름 = new ArrayList<>();

ArrayList에서 가장 많이 사용하는 기능들은 아래와 같다.

  • add() : 삽입, ArrayList변수명.add(값)
  • remove() : index 삭제, ArrayList변수명.remove(index)
  • size() : ArrayList 크기 반환, ArrayList변수명.size()
  • get() : index 값 반환, ArrayList변수명.get(index)

아래 예시 코드를 참고해보자.

public class Main {
	public static void main(String[] args){
    ArrayList<String> nameList = new ArrayList<>();
  	nameList.add("백이진"); 
  	nameList.add("나희도");
  	nameList.add("고유림");
  
  	System.out.println(nameList.size()); //3
  	System.out.println(nameList.get(0)); //백이진
  	System.out.println(nameList); 		 //[백이진, 나희도, 고유림]
  	
  	nameList.remove(2);
  	
  	System.out.println(nameList.size()); //2
  	System.out.println(nameList); 		 //[백이진, 나희도]
}

HashMap

HashMap은 데이터를 Key와 Value로 저장한다.
예를 들어 상품 가격(Key)은 3,000원(Value)과 같은 식이다.

ArrayList는 값을 추가/삭제 하는 과정에서 index 값이 바뀌어 번거로울 수 있다.
그런데 HashMap 은 데이터의 저장순서를 보장하지않아서 n번째의 index를 지워도 n+1번째의 index에 전혀 영향이 없다.

HashMap 사용을 위해서는 먼저 아래와 같이 import가 필요하다.

import java.util.HashMap;

HashMap을 선언하는 방법은 아래와 같다.

HashMap<Key자료형,vlaue자료형> 변수명 = new HashMap<>();

HashMap에서 가장 많이 사용하는 메소드는 아래와 같으며, ArrayList와는 삽입(add())를 제외하면 동일하다.

  • put() : 삽입, HashMap변수명.put(key,value)
  • remove() : 삭제, HashMap변수명.remove(key)
  • size() : 크기 반환, HashMap변수명.size()
  • get() : value 반환, HashMap변수명.get(Key)

Key 당 Value 는 하나만 가질 수 있기 때문에
아래와 같이 고양이에 해당하는 Key값의 Value가 중복 저장되는 경우,
가장 최근 설정한 Value로 덮어씌워진다.

HashMap<String, Animal> animal = new HashMap<>();
animal.put("고양이", new Animal("고양이"));
animal.put("고양이", new Animal("망아지"));
animal.put("강아지", new Animal("강아지"));
animal.put("코끼리", new Animal("코끼리"));

System.out.println(animal.get("고양이")); // 망아지

keySet() 메소드

keySet() 메소드를 사용하면 HashMap의 Key들이 담겨있는 List를 가져올 수 있다.
for문을 사용한 예시는 아래와 같다.

for(String Key : animal.keySet()) {
	System.out.println(animal.get(key)); 
    
    /* 출력 */
    //망아지
    //강아지
    //코끼리
}

0개의 댓글