영호

[Java] List인터페이스 - ArrayList 본문

Language/JAVA

[Java] List인터페이스 - ArrayList

0h0 2022. 6. 14. 15:43

ArrayList란

Java collection의 List인터페이스 구현체입니다.

ArrayList는 배열을 이용하지만, 기존 배열은 용량이 다 차면 용량이 더 큰 배열을 만들어 기존 배열 요소들을 복사하는 작업이 필요했기 때문에, 이러한 단점을 극복하고 동적으로 용량이 늘어나는 Java Collection 클래스 중 하나입니다.

 

List인터페이스의 특징

  • 배열 원소들의 순서가 유지되기 때문에, 인덱스를 통한 접근이 가능합니다.
  • 중복 데이터가 허용됩니다.

ArrayList선언

ArrayList<Integer> arrList = new ArrayList<Integer>(); // Integer타입의 ArrayList
ArrayList<Integer> arrList1 = new ArrayList<>(20); // 초기용량 20
ArrayList<Integer> arrList2 = new ArrayList<>(); // new연산자에서 타입 지정 안해도됨
ArrayList<Integer> arrList3 = new ArrayList<>(Arrays.asList(1,2,3,4)); // 생성하면 원소 할당

System.out.println("arrList3 = " + arrList3);
// arrList3 = [1, 2, 3, 4]

ArrayList의 주요 메서드

method_image
ArrayList주요메서드

사진출처 : https://st-lab.tistory.com/142

 

추가 메서드

  • add(index, element) : index에 element를 삽입합니다.
  • remove(index) : 해당 index원소를 삭제합니다.
  • iterator() : iterator객체를 반환합니다.

 

메서드 구현 코드

package list;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;

public class ArrayListTest {
    public static void main(String[] args) {
        ArrayList<Integer> arrList = new ArrayList<Integer>(); // Integer타입의 ArrayList

        arrList.add(10);
        arrList.add(20);
        arrList.add(30);
        // [10, 20, 30]

        arrList.add(1, 15); // 인덱스를 지정해 원소 삽입 가능
        System.out.println("arrList = " + arrList);
        // [10, 15, 20, 30]

        arrList.remove(Integer.valueOf(20)); // 객체를 넘겨 해당 객체 내용의 원소 삭제
        System.out.println("arrList = " + arrList);
        // [10, 15, 30]

        arrList.remove(0); // 해당 인덱스의 원소 삭제
        System.out.println("arrList = " + arrList);
        // [15, 30]

        System.out.println("arrList.contains(15) = " + arrList.contains(15));
        // true

        // 넘겨진 collection이 포함되는지 확인
        // [15, 30] 은 15만 포함하기 때문에 false
        System.out.println("arrList.containsAll(10,15) = " + arrList.containsAll(new ArrayList<>(Arrays.asList(10,15))));
        // false

        // arrList = [15, 30]
        System.out.println("arrList.size() = " + arrList.size());
        // 2

        // arrList = [15, 30]
        Integer getValue = arrList.get(0);
        System.out.println("getValue = " + getValue);
        // 15

        // arrList = [15, 30]
        arrList.set(0, 10); // (index, element) 
        System.out.println("arrList = " + arrList);
        // arrList = [10, 30]

        // arrList = [10, 30]
        System.out.println("arrList.isEmpty() = " + arrList.isEmpty());
        // false

        // arrList = [10, 30]
        ArrayList<Integer> equalTest = new ArrayList<>(Arrays.asList(10, 30));
        System.out.println("arrList.equals(equalTest) = " + arrList.equals(equalTest));
        // true

        // arrList = [10, 30]
        System.out.println("arrList.indexOf(30) = " + arrList.indexOf(30));
        // 1

        arrList.clear();
        System.out.println("arrList = " + arrList);
        // arrList = []

        Iterator<Integer> iterator = arrList.iterator();

    }
}

 

 

Comments