본문 바로가기
JAVA

컬렉션 프레임워크 Vector

by 요리하다그만둠 2022. 5. 30.

Vector는 ArrayList와 동일한 내부 구조를 가지고 있습니다.

Vector를 생성하기 위해서는 저장할 객체 타입을 타입 파라미터로 표기하고 기본 생성자를 호출해줍니다.

List<E> list = new Vector<E>();

ArrayList와 다른 점은 Vector는 동기화된 메서드로 구성되어 있기 때문에 멀티 스레드가 동시에 이 메서드들을 실행할 수 없고 하나의 스레드가 실행을 완료해야만 다른 스레드를 실행할 수 있다. 

 

Vector를 이용해서 Board 객체를 추가, 삭제 검색하는 예제

public class Board { // 게시물 정보 객체생성
		String subject;
		String content;
		String writer;
	
	public Board (String subject, String content, String writer) {
		this.subject = subject;
		this.content = content;
		this.writer = writer;
	}
}

Board 객체를 저장하는 Vector 작성

import java.util.List;
import java.util.Vector;

public class Ex3 {

	public static void main(String[] args) {
		List<Board> list = new Vector<Board>();

		list.add(new Board("제목1", "내용1", "글쓴이1"));
		list.add(new Board("제목2", "내용2", "글쓴이2"));
		list.add(new Board("제목3", "내용3", "글쓴이3"));
		list.add(new Board("제목4", "내용4", "글쓴이4"));
		list.add(new Board("제목5", "내용5", "글쓴이5"));
		// Board 객체를 저장

		list.remove(2);
		// list.add(new Board("제목3", "내용3", "글쓴이3")); 삭제됨
		list.remove(3);
		// 한칸떙겨지면서
		// list.add(new Board("제목5", "내용5", "글쓴이5")); 이 3으로 내려와서 삭제됨

		for (int i = 0; i < list.size(); i++) {
			Board board = list.get(i);
			System.out.println(board.subject + "\n" + board.content + "\n" + board.writer);
			// 제목1 내용1 글쓴이1
			// 제목2 내용2 글쓴이2
			// 제목4 내용4 글쓴이4 출력됨
            }
         }
       }

'JAVA' 카테고리의 다른 글

컬렉션 프레임워크 Set 컬렉션  (0) 2022.05.30
컬렉션 프레임워크 LinkedList  (0) 2022.05.30
컬렉션 프레임워크 ArrayList  (0) 2022.05.30
예외 처리  (0) 2022.05.26
인터페이스 (default method)  (0) 2022.05.25