JAVAPROGRAMING 9.2

정대기·2022년 7월 6일
0

JAVA PROGRAMING

목록 보기
14/15
  • list의 자식 클래스

1. ArrayList

  1. List 인터페이스를 구현한 구현 클래스
  2. 배열처럼 수집한 원소를 인덱스로 관리하며 저장용량을 동적관리 ( default : 10 )

2. VectorList

  • Vector 의 주요 메서드는 동기화 메서드로 구현되어 있으므로 멀티 쓰레드에 적합하도록 설계되어있다.
public synchronize E remove(int index){
		//...
}
public synchronize E get(int index){
		//...
}
  • 동기화 메서드는 하나의 공유 객체를 2개의 쓰레드가 동시에 사용할 수 없도록 만든 메서드다.
  • 동기화를 하지 않으면 하나의 List객체가 있을 때 하나의 쓰레드는 데이터를 읽고, 또 하나의 쓰레드는 데이터를 삭제하는 작업을 동시에 수행해 작업이 충돌할 수 있다.
  • 정리하자면 ArrayList와 동일한 기능을 수행하지만, 멀티쓰레드에서의 작업이 가능하게 만들어진 것이고, 싱글 쓰레드에서는 굳이 사용할 이유가 없다.

3. LinkedList

  1. Linkedlist는 저장 용량을 매개변수로 갖는 생성자가 없기 때문에 객체를 생성할 때 저장 용량을 지정할 수 없다.
  2. 데이터를 저장하는 방식이 ArrayList와 다르다.

  • ArrayList : 모든 데이터를 위치 정보와 값으로 저장
  • LinkedList : 앞뒤 객체의 정보를 저장 (모두 연결됨)

이 때문에 추가, 삭제 , 검색 메소드를 실행했을때 속도가 다르다.

추가, 삭제를 했을때는 LinkedList가 빠르고 검색을 했을때는 ArrayList가 빠르다.

0개의 댓글