본문 바로가기
프로그래밍/java

java 컬렉션 ArrayList, HashMap 정리

by 뜨끔쓰 2019. 4. 25.
728x90
728x90

안녕하세요


이번에는 java의 ArrayList, HashMap에 대해 정리하려고합니다.


ArrayList, HashMap 이런것들이 대체 무엇이냐 함은 바로 java에는 컬렉션프레임워크(Collaction Framework)이라고 하는 것이 있는데 여기에 속해 있는 클래스들입니다.


우선 컬렉션프레임워크에 대해 간단히 정리해보도록 하죠.





컬렉션프레임워크(Collaction Framework)란?

자바에서의 컬렉션프레임워크는 자료구조를 기반으로 데이터를 읽기, 추가, 삭제, 검색 등 사용자가 효율적으로 객체를 사용하기 위하여 작성되어있는

인터페이스와 클래스들이며, java.util패키지에 포함시켜 놓았습니다.

컬렉션의 종류로는 여러가지가 있는데 (ArrayList, LinkedList, HashMap, 등등) 이중에서 ArrayList와 HashMap에 대하여 알아보도록하겠습니다.





ArrayList란?

ArrayList는 java에서 가장 많이 사용되는 자료구조입니다. 배열과 관련이 있지만 배열과 같지는 않습니다. 기존에 배웠던 배열의 사용법은 항상 크기를 선언해주고 사용을 했어야 했습니다. 그렇기 때문에 인덱스를 다 채우거나, 다 채우지 못한체 사용을 할 수 밖에 없어서 인덱스가 가득차면 더 넣을 수가 없었으며, 반대로 인덱스를 다 채우지 못하면 메모리가 낭비되는 현상이 일어나게 됩니다. 이런 배열의 문제점을 해결하고자 java에서는 ArrayList라는 클래스를 제공해줍니다.

그렇다면 ArrayList는 대체 어떻게 사용하는것인지 알아보도록하겠습니다.

ArrayList 사용법

우선 java.util.ArrayList를 import시켜줘야 사용이 가능합니다.
import를 하셨다면 아래처럼 작성 해주시면됩니다.
ArrayList<자료형> 이름 = new ArrayList<>();
쉽죠?? 그럼 예제를 통하여 한번 확인해 봅시다. 저는 String 자료형을 가진 exList라는 이름의 ArrayList를 선언해보겠습니다.


import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<String> exList = new ArrayList<>();

} }


비교적 어렵지 않으시죠? 인스턴스를 생성할때처럼 해주시면 됩니다.


이제 ArrayList에 값을 추가, 등록, 출력하는 방법을 알아볼께요.


기본적으로 사용하는 방법은 다음과 같습니다.

import java.util.ArrayList;
public class Main {

     public static void main(String[] args) {
          ArrayList<String> exList = new ArrayList<>();
          
          //값의 추가
          exList.add("이름:김길동"); 
          exList.add("나이:28세");
          
          //길이 확인
          System.out.println("exList의 길이: " + exList.size());
          
          //값의 출력
          System.out.println(exList.get(0));
          System.out.println(exList.get(1));
          
          //값의 삭제
          exList.remove(0);  //인덱스 번호로 삭제한다 삭제 시 1번의 인덱스가 0번이 된다.
          System.out.println("exList의 길이: " + exList.size()); //삭제 후 길이 확인
          
          
     }
}


단! 주의 하실점은 인덱스번호로 삭제를 진행하게 되면 삭제된 인덱스 뒷부분의 인덱스들은 -1씩 인덱스번호가 줄어들게 됩니다.


이렇게 작성하시면 결과는 아래와 같습니다.


이렇게 ArrayList의 기본적인 사용방법을 알아보았는데요 다음은 HashMap입니다.




HashMap이란?

HashMap이란 Key-Value 형태로 데이터를 저장하여 Key 값으로 value를 탐색 할 수 있습니다.


HashMap 사용법

ArrayList를 사용할때와 마찬가지로 HashMap도 사용하기 위해선 java.util.HashMap을 import 시켜줘야 사용하실 수 있습니다.
import를 하셨다면 아래처럼 작성해주시면 됩니다.
HashMap<Key자료형, Value자료형> 이름 = new HashMap<>();
ArrayList와 비슷하죠? Key자료형 부분에는 대체로 String을 이용합니다. 그이유는 쉽고 직관적 알아보기 편하기 때문이죠.

단! Value는 중복이 가능하나 Key는 중복이 되어서는 안됩니다. 

저는 영한사전을 만들어보려고합니다. Key값으로 영어스펠링 Value값으로 한글뜻을 저장하려고 작성하였습니다.
그럼 예제를 통하여 알아보도록할께요.

import java.util.HashMap; public class Main { public static void main(String[] args) { HashMap<String, String> dictEngToKor = new HashMap<>(); } }


틀을 만들어주었으면 이제 사전의 내용을 작성해봐야겠죠??

이제 HashMap에 값을 추가, 등록, 출력하는 방법을 알아볼께요.

import java.util.HashMap; public class Main { public static void main(String[] args) { HashMap<String, String> dictEngToKor = new HashMap<>(); //값을 추가하기 dictEngToKor.put("apple", "사과"); dictEngToKor.put("book", "책"); dictEngToKor.put("pen", "볼펜"); //값을 꺼내기 System.out.println(dictEngToKor.get("apple")); System.out.println(dictEngToKor.get("book")); //값을 덮어씌우는 법 dictEngToKor.put("book", "도서"); System.out.println(dictEngToKor.get("book")); //값을 삭제 하는법 dictEngToKor.remove("book"); //book의 키값을 가진 값 삭제 System.out.println(dictEngToKor.get("book")); //길이 확인 System.out.println("dictEngToKor의 길이: " + dictEngToKor.size()); } }


이런식으로 작성하고 결과는 아래처럼 나오게 됩니다.




지금까지 java의 컬렉션에서 많이 사용하는 ArrayList, HashMap에 관해 알아보았는데요.

프로그램을 작성하는데에 있어서 두가지를 잘 숙지하고 이해하신다면 유연하게 코드를 작성하실 수 있을 것 같습니다.


728x90
반응형

댓글