[Java] 초보를 위한 ArrayList에 대한 개념 정리

2023. 4. 2. 16:13프로그래밍/Java

1. Java에서 배열(Array)의 한계점

 

2. ArrayList에 대한 개념

 

3. ArrayList를 이용한 구체적인 코드 작성 및 관련 메서드 정리

 

 

 

1. Java에서 배열(Array)의 한계점

 

java를 처음 접하고 배우다 보면 배열(Array)에 대한 내용이 나온다. 배열은 쉽게 말해서 같은 자료형을 가진 여러가지 데이터를 하나의 배열에 담을 수 있는 저장공간이다. 그러나 배열을 다루다보면 어느정도 한계점이 있는 것을 알 수 있다. 배열의 길이를 한 번 지정해놓으면 길이를 늘리거나 줄여야할 때마다 길이가 긴 새로운 배열을 선언한 후 값을 일일히 옮긴 후 기존의 배열을 삭제하는 작업을 해야한다. 

여간 번거로운 작업이 아니기 때문에 이럴 때는 ArrayList라는 리스트를 만들어서 이용해주면 편리하다.

 

2. ArrayList에 대한 개념

 

ArrayList는 값을 새롭게 추가하거나 삭제할 때마다 리스트의 길이가 늘어났다가 줄어들었다가 하는 것이 가능하다. 혼동하면 안되는 것이 배열(Array)과 리스트(ArrayList)는 자바에서는 엄연히 다른 것으로 구분한다. 보통 배열과 리스트가 비슷한 개념이긴 하지만 자바에서는 별개로 구분 지으므로 주의하자.

 

ArrayList를 동작시키는 코드를 보면 결국은 배열로 이루어져있다는 것을 알 수 있지만 본 글에서는 생략한다. 초보 입장에서 나는 ArrayList는 배열보다 훨씬 사용하기 편하고 접근성이 좋다라는 정도로만 이해하고 넘어가겠다.

 

 

 

3.ArrayList를 이용한 구체적인 코드 작성 및 관련 메서드 정리

 

그럼 이러한 ArrayList의 사용법 및 코드를 짤 때 어떻게 응용할 수 있는지 확인해보자.

 

        ArrayList<Integer> intlist = new ArrayList<>();

사용방법은 간단하다. 위와 같이 ArrayList<배열에 담고자하는 자료형의 클래스 타입> 배열명 = new ArrayList<>();의 형태로

선언해주면 된다. Integer 대신 String 및 다른 클래스들 역시 당연하게도 사용가능하다. 

 

 

   ArrayList<Integer> intlist = new ArrayList<>();
    System.out.println(intlist);
    for(int i = 0 ; i<5; i++){
        intlist.add(i);
        System.out.println(intlist);
    }
    System.out.println(intlist.size());

}

ArrayList를 선언후 배열에 요소들을 추가하는 코드를 작성해봤다. 선언과 생성만 했을 뿐인데 출력문의 맨 윗줄이 빈 배열임을 알 수 있다. 또한 배열과 다르게 배열의 주소가 나오는 것이 아닌 리스트 형태로 결과값을 반환해주는 사실을 알 수 있다.

일반적인 배열을 Arrays.toString()으로 출력한 것과 같은 결과를 얻는다는 것을 알 수 있다. 

 

ArrayList와 관련된 메서드는 정말 많으나 나는 주로 실습 진행 시 add(), get(), size()정도만 활용한 것 같다. 어차피 메서드는 필요할 때마다 찾아서 사용하면 되니까 크게 중요하지는 않은 것 같다. 개념을 이해하고 응용하는 것이 더 중요하기 때문에 관련 메서드는 필요할 때마다 추가적으로 찾아서 공부할 예정이다.