Phương thức capacity trong java

Anh/chị cho em hỏi, vì sao cái capacity sau 4 lần cộng nó lại là 5, em tưởng nó bằng 8, newcapacity = (old * 2) + 2

    public static void main(String args[]) {
       // capacity ban dau la 3, incr la 2
       Vector v = new Vector(3, 2);
       System.out.println("Size ban dau: " + v.size());
       System.out.println("Capacity ban dau: " +
       v.capacity());
       v.addElement(new Integer(1));
       v.addElement(new Integer(2));
       v.addElement(new Integer(3));
       v.addElement(new Integer(4));
       System.out.println("Capacity sau 4 lan cong la: " + v.capacity());
  }

Capacity là sức chứa không phải là tổng giá trị

Ban đầu tạo capacity bằng 3 thì nó cần lấp đầy khoảng đó rồi mới lại + 2 sau. 3 số đầu em không được tính.

1 Like

Trong trường hợp này newcapacity phụ thuộc vào param 2

Nếu em khai báo với constructor mặc định không khai báo increment

   Vector v = new Vector();

Lúc này capacity mới tính theo công thức newcapacity = old * 2 khi nó chạm đến maximum

2 Likes

vâng. em cảm ơn anh !

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?