본문 바로가기
공부방/자바프로그래밍

List 구조

by 오후 네시 2021. 5. 14.

리스트 구조에는 Vector, ArrayList, LinkedList가 있으며, 실무에서는 ArrayList를 가장 많이 쓴다.

 

1. Vector

 

1) 동기화 지원으로 안전한 처리가 가능하지만 성능이 저하될 수 있음.

 

2) 자바 초기버전에서 많이 쓰였으나 지금은 거의 안 씀.

 

2. ArrayList

 

1) Vector를 개량한 클래스

 

2) 저장순서가 유지되고 중복값이 허용됨

 

3) 내부적으로 배열을 사용하여 빠른 처리가 가능함.

배열처럼 쓰면 됨.

 

4) 비순차적인 추가, 삭제 작업의 성능은 떨어짐.

 

3. LinkedList

 

1) 비순차적인 추가, 삭제 작업의 경우 ArrayList보다 성능이 좋음.

 

2) 데이터와 다음자료의 주소값이 하나의 노드(Node)로 묶인 구조.

 

 

4. 리스트( List) 사용방법

 

1) List의 생성

List<자료형> 참조변수=new ArrayList<자료형>();

 

2) 자료의 개수

   참조변수.size();

 

3) 자료 추가

참조변수.add();

 

중간에 끼워넣기를 하고 싶을 때는

참조변수.add(인덱스,);

 

4) 자료 참조

참조변수.get(인덱스);

인덱스는 0부터 시작

 

5) 자료 삭제

  참조변수.remove(인덱스);

 

5. Vector 예제

 - java.util.Vector import

 

//벡터 생성

Vector v=new Vector();

 

v.add(“first”);

v.add(2);

v.add(3.5);

 

//벡터.size() 데이터 개수

//벡터.get(인덱스) 몇번째 값

for(int i=0; I <v.size();i++){

  System.out.println(v.get(i));

}

 

//삭제

v.remove(1)

 

//추가(1번 인덱스에 추가)

//그 뒤 자료는 자동적으로 한 칸씩 밀려남

v.add(1,10.5)

 

//맨 끝에 추가

v.add(10)

 

- 벡터 클래스를 F3으로 보면 클래스가 일반화(generic)으로 설계되어 있음을 알 수 있다.

따라서 벡터를 생성할 때

Vector v=new Vector(); 보다는

 

Vector<Object> v=new Vector<>();

혹은

Vector<String> v=new Vector<>();

 

이런 식으로 하는 것이 훨씬 낫다.

 



Tip :

 

1. 비순차적인 데이터

- 메모리 공간의 여기저기에 흩어져 있는 상태의 데이터를 말함.

 

2. 스레드(thread)

-거미줄이라는 뜻으로, 프로그램의 작업 단위를 말함.

 

1) 싱글스레드프로그램에 스레드가 1.

2) 멀티스레드스레드가 2개 이상.

 

3. java.lang 이외의 패키지는 모두 import를 해야 함

댓글