JAVA

ArrayList

인디아나쥰이 2022. 6. 26. 18:36
반응형
728x90

ArrayList를 설명하기에 앞서, 필요한 사전지식을 매우 간단하게 설명하겠다.

자바에는 컬렉션 프레임웍(Collection Framework)라는것이 존재한다.

컬렉션 프레임 웍 이란 ' 데이터 군을 저장하는 클래스들을 표준화한 설계'를 뜻한다.

(간단하게 생각하자면 다양한 데이터 타입들을 다루기 쉽게 하기위해 제공하는 클래스들? 이라고 생각한다.)

 

이러한 컬렉션 프레임웍엔 3 가지의 컬렉션 데이터 그룹이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3가지의 인터페이스가 정의되어있다.

 

1. List 

2. Set

3. Map 

 

그 중에서 List의 ArrayList가 오늘 정리할 내용이다.

 

List 인터페이스

List인터페이스는 중복을 허용하면서 저장순서가 유지되는 컬렉션을 구현 하는데 사용된다.

List인터페이스는 제목처럼 말그대로 인터페이스다. 
그렇다면   ArrayList는 List를 상속 받아 만들어진 클래스 인 것이다.

(List에 대한 자세한 설명은 추후 작성)

 

 

ArrayList

ArrayList는 컬렉션 프레임웍에서 가장 자주 사용되는 컬렉션 클래스이다.

당연하게도 List를 상속받아 만들어진 클래스며, List의 특징을 가진다.(저장순서 유지, 중복을 허용)

 

 

ArrayList 메소드

 

  • void add(int index, object element): 저장된 위치(index)에 객체를 저장
  • Object get(index): 저장된 위치(index)에 저장된 객체를 반환
  • int indexOf(Object o): 지정된 객체가 저장된 위치를 찾아 반환한다.
  • int lastindexOf(Object o): 객체가 저장된 위치를 끝부터 역방향으로 검색해서 반환
  • Object remove(int index),boolen remove(Object o): 지정된 위치의 객체 제거 or 지정된 객체 제거
  • boolen contains(Object o): 지정된 객체가 ArrayList에 포함되어있는지 확인
  • void clear(): ArrayList를 완전히 비운다.
  • boolen isEmpty(): ArrayList가 비어있는지 확인한다.
  • int size(): ArrayList에 저장된 객체의 개수를 반환한다.

 

ArrayList의 선언

ArrayList list = new ArrayList(); //타입 미설정 Object로 선언된다.
ArrayList<Softwiz> members = new ArrayList<Softwiz>(); //타입설정 Softwiz객체만 사용가능
ArrayList<Integer> num = new ArrayList<Integer>();//타입설정 int타입만 사용가능

위 처럼 ArrayList를 선언해도 된다!(절대 틀린 방법이 아니다.)

 

 

 

다만, 조금더 ArrayList선언시에 유연하게 사용할 수 있도록 선언하는 방법이 있다.

 

  List list = new ArrayList();

만약 ArrayList<Object> list = new ArrayList<>(); 와 같이 ArrayList라는 인스턴스로 선언하면,
나중에 데이터의 용도가 LinkedList 자료구조로 변경해야 할 때 ArrayList로 선언된 모든 부분을 LinkedList로 변경해 주어야 한다.
또, ArrayList에서는 지원하지만 LinkedList에서는 지원하지 않는 메소드를 사용했다면 그 메소드를 더 이상 사용할 수 없게 된다.
이는 변경에 유연하지 못하다.

그러나 List<Object> arrList = new ArrayList<>(); 와 같이 List라는 인스턴스로 선언하면,
똑같은 상황이 오더라도 선언부 외에 다른 부분을 변경할 필요가 없다. 이런 부분에서 이점이 있기 때문에 List로서 선언하는 것이다.

 

728x90
반응형