-
반응형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반응형'JAVA' 카테고리의 다른 글
[JAVA] iterator (0) 2021.09.30 [JAVA] ArrayList (0) 2021.08.19 [JAVA] println, print 차이 (0) 2021.08.08 인터페이스 (interface) (0) 2021.07.11 추상클래스(abstract class) (0) 2021.07.03