배열(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은 데이터를 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() 메소드를 사용하면 HashMap의 Key들이 담겨있는 List를 가져올 수 있다.
for문을 사용한 예시는 아래와 같다.
for(String Key : animal.keySet()) {
System.out.println(animal.get(key));
/* 출력 */
//망아지
//강아지
//코끼리
}