SPRING :: NOTE

[JAVA] ArrayList에서 값이 들어있는 만큼 개수 세기 본문

Development Language/JAVA · ANDROID

[JAVA] ArrayList에서 값이 들어있는 만큼 개수 세기

RAYZIE 2023. 4. 27. 14:13
반응형

다음과 같이 배열을 선언하고, 값이 유동적으로 변하기 때문에 개수를 셀 필요가 있다.

ArrayList<String>[] info = new ArrayList[50];

ArrayList로 배열을 선언한 경우, 각 요소는 null로 초기화된다.

이 배열은 ArrayList<String> 객체에 대한 참조를 저장하고 있으며, 값이 없는 요소는 null을 저장하고 있다.

따라서, 값이 있는 요소의 개수를 세려면 null이 아닌 요소를 찾아야 한다.

아래와 같이 for-each 루프를 사용하여 각 요소를 검사하고, null이 아닌 요소의 개수를 계산할 수 있다.

int count = 0;
for (ArrayList<String> list : info) {
    if (list != null) {
        count += list.size();
    }
}
System.out.println("값이 있는 요소의 개수: " + count);

위 코드에서, ArrayList<String> 객체의 size() 메서드를 사용하여 각 ArrayList에 저장된 요소의 개수를 계산하고, 모든 ArrayList의 size를 합하여 값을 구한다.

이 방법을 사용하면 값이 있는 ArrayList<String> 객체의 개수와 그에 포함된 요소의 총 개수를 모두 계산할 수 있다.


상위 배열의 개수만 세려면, 각 하위 ArrayList에 저장된 데이터를 고려할 필요 없이, 값이 있는 상위 배열의 개수만 세면 된다.

따라서, 각 하위 ArrayList에 add한 데이터는 고려하지 않아도 된다.

아래와 같이 for-each 루프를 사용하여 각 요소를 검사하고, null이 아닌 요소의 개수를 계산할 수 있다.

int upperCount = 0;
int lowerCount = 0;
for (ArrayList<String> list : info) {
    if (list != null) {
        upperCount++;
        if (!list.isEmpty()) {
            lowerCount++;
        }
    }
}
System.out.println("값이 있는 상위 배열의 개수: " + upperCount);
System.out.println("값이 있는 하위 ArrayList의 개수: " + lowerCount);

위 코드에서, ArrayList<String> 객체의 size() 메서드를 사용하지 않고, ArrayList<String> 객체의 null 여부만을 확인하여 값을 계산한다. 따라서, 하위 ArrayList에 add한 데이터는 고려하지 않아도 된다.

반응형
Comments