ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ArrayList
    JAVA 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
    반응형

    '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

    댓글

Designed by Tistory.