Java/컬렉션

[Java]ArrayList 비어 있는지 확인하는 방법

DevStory 2022. 6. 23.

이번 포스팅은 Java에서 ArrayList가 비어 있는지 확인하는 방법을 소개합니다.


size() 메서드

ArrayList 클래스의 size() 메서드를 사용하여 ArrayList가 비어 있는지 확인할 수 있습니다. 크기가 0보다 크면 ArrayList에 요소가 존재한다는 의미이므로 비어 있지 않고 크기가 0이면 요소가 없으므로 비어 있음을 의미합니다.

 

다음 예제는 ArrayList의 size() 메서드 사용 방법을 보여줍니다.

public class Main {
  public static void main(String args[]) {
    ArrayList<Integer> al1 = new ArrayList<Integer>(
            Arrays.asList(1, 2, 3, 4, 5)
    );

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

    if(al1.size() == 0) {
        System.out.println("al1 object is Empty");
    } else {
        System.out.println("al1 object is Not-Empty");
    }

    if(al2.size() == 0) {
        System.out.println("al2 object is Empty");
    } else {
        System.out.println("al2 object is Not-Empty");
    }
  }
}

실행 결과

al1 object is Not-Empty
al2 object is Empty

isEmpty() 메서드

ArrayList 클래스의 isEmpty() 메서드는 ArrayList의 size() 메서드를 내부적으로 호출합니다. isEmpty() 메서드는 ArrayList에 요소가 없으면 true를 반환하고 그렇지 않으면 false를 반환합니다.

 

다음 예제는 ArrayList의 isEmpty() 메서드 사용 방법을 보여줍니다.

public class Main {
  public static void main(String args[]) {
    ArrayList<Integer> al1 = new ArrayList<Integer>(
            Arrays.asList(1, 2, 3, 4, 5)
    );

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

    if(al1.isEmpty()) {
        System.out.println("al1 object is Empty");
    } else {
        System.out.println("al1 object is Not-Empty");
    }

    if(al2.isEmpty()) {
        System.out.println("al2 object is Empty");
    } else {
        System.out.println("al2 object is Not-Empty");
    }
  }
}

실행 결과

al1 object is Not-Empty
al2 object is Empty

null로 초기화

비어 있는 ArrayList는 객체는 존재하지만, 요소가 없는 경우를 말합니다. 하지만, null로 초기화하면 힙 메모리에 ArrayList 객체가 없다는 것을 의미합니다.

 

위에서 소개한 size(), isEmpty() 메서드를 사용하여 null로 초기화된 ArrayList를 체크하면 NullPointerException 예외가 발생합니다.

public class Main {
  public static void main(String args[]) {
    // ArrayList 객체를 null로 초기화합니다.
    ArrayList<Integer> al = null;

    // NullPointerException 예외가 발생합니다.
    // isEmpty() 메서드도 동일한 예외가 발생합니다.
    if(al.size() == 0) {
        System.out.println("al object is Empty");
    } else {
        System.out.println("al object is Not-Empty");
    }
  }
}

따라서, ArrayList가 비어 있는지 확인해기 위해서는 null을 반드시 확인해야 합니다.

 

다음 예제는 null 체크와 ArrayList가 비어 있는지 확인하는 방법을 보여줍니다.

public class Main {
  public static void main(String args[]) {
    ArrayList<Integer> al1 = null;
    ArrayList<Integer> al2 = null;

    if(al1 == null || al1.size() == 0) {
        System.out.println("al1 object is Empty");
    } else {
        System.out.println("al1 object is Not-Empty");
    }

    if(al2 == null || al2.isEmpty()) {
        System.out.println("al2 object is Empty");
    } else {
        System.out.println("al2 object is Not-Empty");
    }
  }
}

실행 결과

al1 object is Empty
al2 object is Empty

정리

  • ArrayList가 비어 있는지 확인하는 방법으로 ArrayList 클래스의 size() 메서드와 isEmpty() 메서드를 사용합니다.
  • ArrayList를 null로 초기화할 수 있으므로 null인지 체크할 필요가 있습니다.
반응형

댓글