본문 바로가기

Java

[Java] Vector 클래스

Vector 클래스

동적으로 크기가 관리되는 객체 배열.

내부적으로 Object 타입의 배열을 가지고 있어서, 이 배열에 객체를 추가하거나 제거할 수 있게 작성되어 있다.

배열의 크기를 알아서 관리해주기 때문에 저장할 인스턴스의 개수에 신경쓰지 않아도 된다.


 메서드 / 생성자

 설명 

 Vector() 

 10개의 객체를 저장할 수 있는 Vector 인스턴스를 생성한다.

 10개 이상의 인스턴스가 저장되면, 자동적으로 크기가 증가된다. 

 boolean add(Object o) 

 Vector에 객체를 추가한다. 

 추가에 성공하면 true, 실패하면 false를 반환한다. 

 boolean remove(Object o) 

 Vector에 저장되어 있는 객체를 제거한다.

 제거에 성공하면 true, 실패하면 false를 반환한다. 

 boolean isEmpty()

 Vector가 비어있는지 검사한다.

 비어있으면 true, 비어있지 않으면 false를 반환한다. 

 Object get(int index) 

 지정된 위치(index)의 객체를 반환한다.

 반환타입이 Object이므로 적절한 형변환이 필요하다. 

 int size() 

 Vector에 저장된 객체의 개수를 반환한다. 



- 관련 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
public class Main{
 
    public static void main(String[] args) {
        Buyer b = new Buyer();
        Tv tv = new Tv();
        Computer com = new Computer();
        Audio audio = new Audio();
        
        b.buy(tv);
        b.buy(com);
        b.buy(audio);
        b.summary();
        System.out.println();
        b.refund(com);
        b.summary();
    }
}
 
class Product {
    int price;
    int bonusPoint;
    
    Product(int price) {
        this.price = price;
        bonusPoint = (int)(price/10.0);
    }
    
    Product() {
        price = 0;
        bonusPoint = 0;
    }
}
 
class Tv extends Product {
    Tv() { super(100); }
    public String toString() { return "Tv";    }
}
 
class Computer extends Product {
    Computer() { super(200); }
    public String toString() { return "Computer";    }
}
 
class Audio extends Product {
    Audio() { super(50); }
    public String toString() { return "Audio";    }
}
 
class Buyer {
    int money = 1000;
    int bonusPoint = 0;
    Vector item = new Vector();
    
    void buy(Product p) {
        if(money < p.price) {
            System.out.println("잔액이 부족하여 물건을 살 수 없습니다.");
            return;
        }
        money -= p.price;
        bonusPoint += p.bonusPoint;
        item.add(p);
        System.out.println(p + "을/를 구입하셨습니다.");
    }
    
    void refund(Product p) {
        if(item.remove(p)) {
            money += p.price;
            bonusPoint -= p.bonusPoint;
            System.out.println(p + "을/를 반품하셨습니다.");
        } else {
            System.out.println("구입하신 제품 중 해당 제품이 없습니다.");
        }
    }
    
    void summary() {
        int sum = 0;
        String itemList = "";
        
        if(item.isEmpty()) {
            System.out.println("구입하신 제품이 없습니다.");
            return;
        }
        
        for(int i=0; i<item.size(); i++) {
            Product p = (Product)item.get(i);
            sum += p.price;
            itemList += (i==0) ? "" + p : ", " + p;
        }
        System.out.println("구입하신 물품의 총금액은 " + sum + "만원입니다.");
        System.out.println("구입하신 제품은 " + itemList + "입니다.");
    }
}
cs


- 실행 결과




참고자료

자바의 정석

'Java' 카테고리의 다른 글

[Java] 예외처리  (0) 2019.01.16
[Java] 추상클래스와 인터페이스  (0) 2019.01.03
[Java] 다형성  (0) 2019.01.01
[Java] 제어자  (0) 2019.01.01
[Java] 상속  (0) 2019.01.01