코딩딩/Java
List 컬렉션
전낙타
2023. 7. 15. 22:04
Vector
ArrayList와 Vector의 차이점은 동기화 여부이다.
Vector는 동기화 메소드로 구성되어 있어 멀티 스레드가 동시에 Vector의 메소드들을 실행할 수 없고, 하나의 스레드가 메소드 실행을 완료 해야만 다른 스레드가 메소드를 실행할 수 있음.
Vector는 멀티 스레드 환경에서 안전하게 객체를 추가, 삭제할 수 있다
LinkedList
LinkedList는 List 구현 클래스이므로 ArrayList와 사용 방법은 동일하나 데이터를 보관하는 내부 구조가 다르다. ArrayList는 내부 배열에 객체를 저장해서 관리하고 (한줄서기) LinkedList는 인접 참조를 링크해서 체인처럼 관리함. (번호표)
객체 삭제와 삽입이 일어나는 곳에서는 ArrayList 보다 LinkedList가 더 좋은 성능을 발휘함
import java.util.LinkedList;
import java.util.List;
public class LinkedListEx {
public static void main(String[] args) {
List<String> list = new LinkedList<>();
list.add("java");
list.add("JDBC");
list.add("Servlet/JSP");
list.add(2,"Database");
list.add("iBatis");
int size = list.size();
System.out.println(size);
System.out.println();
String skill = list.get(2);
System.out.println(skill);
System.out.println();
for (int i = 0 ; i < list.size(); i++){
String str = list.get(i);
System.out.print(i + " : " + str + ", ");
}
System.out.println();
list.remove(2);
list.remove(2);
list.remove("iBatis");
for (String value : list){
System.out.print(value + ", ");
}
}
}