본문 바로가기

개발

Java - ArrayList

반응형

ArrayList
 - Vector를 개선. 구현 원리와 기능적으로 동일
 - 동기화 처리 안되어있다.(Vector은 동기화 처리 됨)
 - List 인터페이스를 구현하므로, 저장순서가 유지되고 중복을 허용한다.
 - 데이터의 저장공간으로 배열을 사용한다.(배열 기반)
 

ArrayList의 메서드
 - 생성자
   ArrayList()
   ArrayList(Collection c)
   ArrayList(int initCapacity) : 배열의 길이 설정 
 - boolean add(Object o) : 성공 true 실패 false
 - void add(int index, Object o) : 추가할 위치 
 - boolean addAll(int index, Collection o) : 성공 true 실패 false
 - boolean remove(int index) : 인덱스를 삭제 
 - Object remove(Object 0) : 객체를 삭제 ** 헷갈리지 말것 
 list.remove(1) : 인덱스 삭제  
 list.remove(new Integer(1)) : 객체를 삭제 
 ... List 메소드와 동일
 - Object[] toArray() : 객체 배열을 반환
 - Object[] toArray(Object[] a) 
 - void trimToSize() : 빈공간 제거 
 - int size() : 저장된 객체 갯수

ArrayList에 저장된 객체의 삭제과정
 1. 삭제할 데이터를 한칸씩 위로 복사해서 삭제할 데이터를 덮어쓴다.
  System.arraycopy(data, 3, data 2,2) > data[3]에서 data[2]로 2개의 데이터를 복사하라 
 2. 데이터가 모두 한 칸씩 이동했으므로 마지막 데이터는 null로 변경한다.
  data[size-1] = null; 
 3. size 값을 감소한다.
  size--;

** 마지막 부터 삭제 하는 경우는 배열 복사 발생하지 않는다. 빠르다.

반응형

'개발' 카테고리의 다른 글

Java - 스택과 큐 (Stack & Queue)  (0) 2021.06.06
Java - LinkedList  (0) 2021.06.06
Java - 컬렉션 프레임웍(collections framework)  (0) 2021.06.06
Java - 형식화 클래스  (0) 2021.06.06
Java - 날짜와 시간  (0) 2021.06.06