본문 바로가기
Java

Java에서 배열과 컬렉션의 크기를 구하는 방법, length와 size() 차이점 완벽 정리

by 자바 스터디 2024. 7. 10.

Java에서 배열과 컬렉션의 크기를 구하는 방법, length와 size() 차이점 완벽 정리

Java 개발을 하다 보면 배열과 컬렉션의 크기를 구하는 경우가 많습니다. 그런데 length와 size()를 언제 사용해야 하는지 헷갈리신 적 있으신가요? 이번 글에서는 이 두 가지를 명확하게 구분하고, 각각의 사용법을 자세히 설명드리겠습니다. 이 글을 읽고 나면 더 이상 헷갈리지 않고, 코드를 보다 효율적으로 작성할 수 있을 것입니다.

 

배열과 컬렉션 크기 구하는 방법, length와 size() 차이점

 

배열의 크기를 구하는 length

Java에서 배열의 크기를 구할 때는 length를 사용합니다.

 

java 배열 컬렉션
java 배열 컬렉션

 

배열은 생성 시 크기가 고정되며, 이후에는 크기를 변경할 수 없습니다. 따라서 배열의 크기를 구할 때는 단순히 배열변수.length를 사용하면 됩니다. 이는 배열의 속성으로, 배열이 생성될 때 이미 크기가 정해지기 때문에 가능한 일입니다.

 

예를 들어, 다음 코드를 보겠습니다.

 

int[] numbers = {1, 2, 3, 4, 5};
int length = numbers.length;
System.out.println(length); // 출력: 5

 

위 코드에서 numbers 배열의 크기는 5로, length를 통해 이 값을 쉽게 얻을 수 있습니다. 배열의 크기는 고정되어 있기 때문에, 배열이 생성된 후에는 크기를 변경할 수 없습니다. 이는 배열의 중요한 특징 중 하나로, 메모리 관리와 관련이 있습니다.

 

 

 

 

 

 

컬렉션의 크기를 구하는 size()

반면, ArrayList, HashSet, HashMap 등과 같은 컬렉션의 크기를 구할 때는 size() 메서드를 사용합니다. 컬렉션은 동적으로 크기가 변할 수 있기 때문에, 현재 컬렉션에 포함된 요소의 수를 알아내기 위해 size() 메서드를 호출해야 합니다.

 

예를 들어, 다음 코드를 보겠습니다.

 

import java.util.ArrayList;

ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
int size = list.size();
System.out.println(size); // 출력: 3

 

위 코드에서 list의 크기는 3으로, size() 메서드를 통해 이 값을 얻을 수 있습니다. 컬렉션은 동적으로 크기가 변할 수 있기 때문에, 요소를 추가하거나 제거할 때마다 size()를 호출하여 현재 크기를 확인해야 합니다.

 

배열과 컬렉션 비교 정리

 

특성 배열(Array) 컬렉션(Collection)
크기 구하는 방법 length 속성 사용 size() 메서드 사용
동적 크기 불가능 (고정 크기) 가능 (동적 크기 변경 가능)
사용 예시 int[] arr = {1, 2, 3}; arr.length; ArrayList<Integer> list = new ArrayList<>(); list.size();
사용 시기 고정된 크기의 데이터를 다룰 때 크기가 동적으로 변할 수 있는 데이터를 다룰 때
성능 영향 크기 확인 시 성능에 영향 없음 빈번한 호출 시 성능에 영향 있을 수 있음

 

비교 정리한 코드

public class Main {
    public static void main(String[] args) {
        // 배열의 크기를 구할 때
        int[] numbers = {1, 2, 3, 4, 5};
        int arrayLength = numbers.length;
        System.out.println("배열의 크기: " + arrayLength); // 출력: 배열의 크기: 5

        // ArrayList의 크기를 구할 때
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        int listSize = list.size();
        System.out.println("ArrayList의 크기: " + listSize); // 출력: ArrayList의 크기: 3
    }
}

 

length와 size() 사용 시 주의사항

length와 size()는 각각 배열과 컬렉션의 크기를 구하는 데 사용되지만, 이 둘을 혼동하지 않도록 주의해야 합니다. 배열의 크기를 구할 때 size()를 사용하거나, 컬렉션의 크기를 구할 때 length를 사용하면 컴파일 에러가 발생합니다. 따라서 코드 작성 시 각 메서드의 용도를 정확히 이해하고 사용하는 것이 중요합니다.

 

또한, 컬렉션의 경우 size() 메서드를 자주 호출하게 되면 성능에 영향을 미칠 수 있습니다. 특히, 대규모 데이터 처리 시에는 size() 메서드를 한 번 호출한 후 그 값을 변수에 저장해두고 사용하는 것이 성능 향상에 도움이 됩니다.

 

 

전문가의 사용 후기

제가 실제 프로젝트에서 배열과 컬렉션의 크기를 구하는 방법을 사용해본 경험을 공유하겠습니다. 초창기에는 length와 size()를 혼동하여 컴파일 에러를 자주 발생시켰습니다.

 

하지만 두 메서드의 차이점을 명확히 이해하고 나서는 이런 실수를 줄일 수 있었습니다. 특히, 대규모 데이터 처리 시 size() 메서드를 자주 호출하면 성능이 저하될 수 있다는 점을 유의하게 되었습니다. 이를 통해 변수에 값을 저장해두고 사용하는 습관을 기르게 되었고, 이는 코드의 효율성을 높이는 데 큰 도움이 되었습니다.

 

끝으로

Java에서 배열과 컬렉션의 크기를 구하는 방법인 length와 size()의 차이점을 명확히 이해하는 것은 매우 중요합니다. 배열의 크기를 구할 때는 length를 사용하고, 컬렉션의 크기를 구할 때는 size() 메서드를 사용해야 합니다. 이를 통해 코드 작성 시 불필요한 실수를 줄이고, 코드의 효율성을 높일 수 있습니다. 이 글을 통해 두 메서드의 차이점을 명확히 이해하고, 실전에서 이를 효과적으로 활용하시길 바랍니다.

 

▼ 함께 보면 좋은 글 ▼

 

Java 8에서 forEach()를 사용하여 리스트를 쉽게 순회하는 방법

 

Java 8에서 forEach()를 사용하여 리스트를 쉽게 순회하는 방법

Java 8에서 forEach()를 사용하여 리스트를 쉽게 순회하는 방법Java 개발자라면 코드의 가독성과 효율성을 항상 고민하게 됩니다. Java 8부터는 이러한 고민을 해결할 수 있는 새로운 방법이 도입되었

java.seedtype.com