[배열 (Array)] 

배열은 Java 의 기본 자료구조로, 크기가 고정된 순차적인 데이터 구조이다. 

 

특징 

  • 고정크기 : 배열은 생성 시 크기를 지정하며, 크기를 동적으로 변경 할 수 없다. 
  • 동일한 타입: 배열은 한가지 데이터 타입만 저장할 수 있다. 
  • 빠른 접근 속도 : 인덱스를 사용하여 요소에 빠르게 접근할 수 있다. 
  • 저수준: 배열은 java의 가장 기본적인 데이터 구조로 추가적인 기능이 없다. 

장점 

  • 메모리 사용이 효율적이며 ,요소에 대한 접근이 빠르다
  • 다차원 배열을 사용 할 수 있다. 

단점 

  • 크기가 고정되어 있어 데이터가 동적으로 변하는 경우 사용이 어렵다 
  • 요소의 추가/삭제가 어렵고 비효율적이다. 

 

배열의 선언 

// 방법1
int[] numbers = new int[] {10, 20, 30};  //개수 생략해야 함

// 방법2
int[] numbers = {10, 20, 30};            // new int[]  생략 가능 

// 방법3
int[] numbers = new int[3] // 이 후 값을 넣어준다. 넣어주지 않으면 기본값유지 
numbers[0] = 10;

 

 

[리스트(List)] 

리스트는 Java의 컬렉션 프레임워크에서 제공하는 인터페이스로, 데이터를 동적으로 관리할 수 있는 자료구조이다. ArrayList, LinkedList 등의 구현체가 있다. 

 

특징 

  • 동적 크기 : 데이터의 삽입과 삭제에 따라 크기가 자동으로 조정된다. 
  • 유연성 : 기본형 데이터도 Wrapper Class를 통해 저장할 수 있다. 
  • 다양한 구현체 : ArrayList, LinkedList, Vector 등 여러 구현체가 있어 용도에 맞게 사용 할 수 있다. 
  • 메서드 제공: 데이터를 추가, 삭제, 정렬 등 다양한 작업을 쉽게 처리 할 수 있는 메서드가 제공 된다. 

장점 

  • 크기가 자동으로 조정되어 동적인 데이터 처리에 적합하다
  • 여러 구현체를 선택 할 수 있어 상황에 다라 유리한 성능을 얻을 수 있다. 

단점 

  • 배열에 비해 메모리 사용이 비효율적일 수 있다. 
  • 배열에 비해 속도가 느릴 수 있다. 

 

리스트 선언

List<String> arrayList = new ArrayList<>(); // ArrayList 선언

List<String> linkedList = new LinkedList<>(); // LinkedList 선언

List<String> vector = new Vector<>();  // Vector 선언

 List<String> stack = new Stack<>(); // Stack 선언 (Vector의 하위 클래스)

 

 

배열과 리스트의 차이 

특징 배열(Array) 리스트(List) 
크기 고정 (생성 시 지정, 변경 불가)  동적 (데이터 삽입/ 삭제에 따라 조정 가능)
데이터 타입 동일한 타입만 저장 가능  List<Object> 로 여러 타입 저장 가능 
메서드 지원 여부  기본 제공 메서드 없음  다양한 메서드 제공 (추가, 삭제, 탐색 등) 
성능 메모리 효율적, 접근 속도 빠름  메모리 사용 증가, 접근 속도는 구현체에 따라 다름
구현체 Java 기본 자료구조 ArrayList, LinkedList 등 다양함 
사용 목적 고정 크기의 데이터 처리 크기 변경이 자주 필요한 경우 

 

 

해니01_15