[Java] 배열과 리스트과 비교 👀

kingkang·2025년 1월 8일
1

🤓 Java

목록 보기
2/3
post-thumbnail

안녕하세요! 오늘은 Java에서의 배열(Array)과 리스트(List)에 대해 알아보겠습니다.

파이썬에서는 리스트 하나로 대부분의 데이터 관리가 가능하지만, 자바에서는 두 가지를 구분하여 제공하는데요! 이 글에서는 두 자료구조의 특징과 실제 코드를 통해 어떤 상황에서 어떤 자료구조를 사용하는 것이 좋을지 살펴보겠습니다🤓


1️⃣ 배열(Array)

특징

  • 고정된 크기
  • 연속된 메모리 공간 사용
  • 인덱스를 통한 빠른 접근 가능
  • 기본형과 참조형 모두 저장 가능

사용 예시

// 배열 선언과 초기화
int[] scores = new int[5];        // 크기 5로 고정
int[] nums = {1, 2, 3};           // 초기값으로 생성
String[] fruits = new String[3];  // 참조형도 가능

// 값 접근과 변경
scores[0] = 100;                    // 인덱스로 접근
System.out.println(scores.length);  // 길이는 .length

2️⃣ 리스트(List)

특징

  • 동적으로 크기가 변함
  • 다양한 메소드 제공
  • 참조형만 저장 가능

2-1. ArrayList

// 선언과 초기화
List<Integer> numbers = new ArrayList<>();    // 인터페이스 사용
ArrayList<String> names = new ArrayList<>();  // 구현체 직접 사용

// 데이터 조작
numbers.add(10);    // 추가
numbers.remove(0);  // 삭제
numbers.get(0);     // 접근
System.out.println(numbers.size());  // 크기는 .size()

2-2. LinkedList

LinkedList<String> playlist = new LinkedList<>();

playlist.addFirst("노래1");  // 맨 앞 추가
playlist.addLast("노래2");   // 맨 뒤 추가
playlist.add(1, "노래3");    // 중간 삽입

3️⃣ 주요 활용 사례

배열 활용

  1. 크기가 고정된 경우
    • 학생 성적 처리 (과목 수가 정해진 경우)
    • 요일별 데이터 저장 (7일로 고정)
  1. 빠른 조회가 필요한 경우
    • 인덱스로 직접 접근하는 경우가 많을 때
    • 순차적인 데이터 처리가 필요할 때

리스트 활용

  1. ArrayList
    • 데이터의 크기가 가변적인 경우
    • 주로 맨 끝에 추가/삭제하는 경우
    • 조회가 많은 경우
  1. LinkedList
    • 중간에 삽입/삭제가 빈번한 경우
    • 메모리를 효율적으로 사용해야 할 때
    • 데이터의 순서가 자주 바뀌는 경우

배열과 리스트는 각각의 장단점이 있으므로, 여러 문제를 풀어보며 각각의 상황에 맞는 자료구조를 선택해야겠어요💡

profile
꿈을 꾸물꾸물 꾸지 말자!

0개의 댓글