ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] List 컬렉션 - ArrayList
    JAVA 2022. 5. 20. 00:13
    반응형

    List 컬렉션은 선형구조로 이루어져 있다.

    인덱스로 저장된 값들을 관리하며 , 값을 저장하면 자동으로 인덱스를 부여한다.

    해당 인덱스로 저장된 값에 접근할 수 있다.

     

    <<List 공통 methods>>
    
    //1. 객체 추가
    boolean add(E e)			주어진 객체 e를 리스트 맨 끝에 추가
    void add(int index, E e)		주어진 인덱스에 객체를 추가
    E set(int index, E e)			주어진 인덱스에 저장된 객체를 입력한 객체 e로 변경
    
    
    //2. 객체 검색
    boolean contains(Object o)		주어진 객체가 저장되어 있는지 검색
    E get(int idx)				주어진 인덱스에 저장된 객체를 리턴
    boolean isEmpty()			컬렉션이 비어있는지 여부 리턴
    int size()				저장되어 있는 전체 객체의 수 리턴
    
    
    //3. 객체 삭제
    void clear()				저장된 모든 객체를 삭제
    E remove(int idx)			주어진 인덱스에 저장된 객체를 제거
    boolean remove(Object o)		주어진 객체를 삭제

     

    ArrayList

    List 인터페이스의 하위 클래스.

    ArrayList에 객체를 추가하면 객체가 인덱스로 관리됨.

    배열과 유사한 사용법을 가지나, 차이점으로는

    크기가 유동적이다.

     

    생성방법

    //java 5 이후 타입 지정 생성방식을 채용함.
    
    List<E> list = new ArrayList<E>([length]); // [length]는 초기 용량. 생략가능
    
    //예
    
    List<String> strList = new ArrayList<>(); //String 타입의 객체를 저장하는 리스트
    List<Integer> intList = new ArrayList<>(); //int 타입 객체 저장

     

    위 예시처럼 제네릭으로 타입을 지정해주어 불필요한 Object 타입으로의 변환과정을 없애 성능저하 요소를 줄이게 되었다.

     

    ArrayList에 객체를 추가하면 idx 0부터 차례로 저장된다.

    특정 idx의 객체를 제거하면 해당 idx 뒤의 객체들이 idx 1씩 앞으로 이동한다.

    또한 특정 idx에 객체를 삽입하면 해당 idx부터 마지막 idx까지 객체들이 idx 1씩 뒤로 이동한다.

     

    그래서 빈번한 삽입 삭제가 일어나는 곳에서 ArrayList의 사용은 별로 성능에 좋지 못하다.

     

    초기 값을 가지고 있는 List 생성하기

    List<String> li = Array.asList("a","b","c"); // "a","b","c" 가 들어있는 리스트 생성

     

    반응형

    댓글

Designed by Tistory.