java - MyListVector

imjingu·2023년 9월 3일
0

개발공부

목록 보기
446/481

Vector는

ArrayList와 동일한 내부 구조를 가지고 있음
ArrayList와 다른 점은 Vector는 동기화된 synchronized 메소드로 구성이 되어 있어서, 멀티 스레드가 동시에 메소드를 실행할 수 없고, 하나의 스레드가 메소드를 실행을 완료해야만 다른 스레드가 메소드를 실행할 수 있음
그래서 멀티 스레드 환경에서 안전하게 객체를 추가, 삭제 할 수 있음

package chapter20230901.vector;
import java.util.*;

public class MyListVector_01 {
	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"));
		
		list.remove(2); // 2번 인덱스 객체 삭제 (제목3). 뒤의 인덱스는 1씩 앞당겨짐
		list.remove(3); // 3번 인덱스 객체 삭제
		
		for(int i = 0; i < list.size(); i++) {
			Board board = list.get(i);
			System.out.println(board.subject + " \t" + board.content + " \t" + board.writer);
		}
		
		System.out.println();
		
		for(Board board : list) { // foreach 문으로 작성
			System.out.println(board.subject + " \t" + board.content + " \t" + board.writer);
		}
	}
}

package chapter20230901.vector;

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;
	}

}

0개의 댓글