2013-06-21 43 views
5

im cố gắng để có được một vector của các số nguyên bằng cách sử dụng như sau:Làm thế nào để có một vector của các số nguyên trong Java

Vector<int> vec =new Vector<int>(); 

nhưng tôi nhận được một lỗi:

Syntax error on token "int", Dimensions expected after this token

Tôi biết rằng Vector chỉ chấp nhận các đối tượng,

là có cách đơn giản để có vectơ các số nguyên mà không cần tạo một đối tượng chỉ lưu trữ một int không?

Cảm ơn

+9

'Vector ' –

+0

ITT: tại sao C# tốt hơn java –

+0

@SamIam Bởi vì nhiều năm trở nên khó hiểu. –

Trả lời

8

Chỉ cần sử dụng Vector<Integer>.

Tự động tạo hộp sẽ cho phép bạn thêm Integer s như thể chúng là int s.

Ví dụ:

Vector<Integer> vector = new Vector<>(); //Diamonds are allowed in 7+ 
vector.add(5); 

Ngoài ra, bạn quên đề cập đến một tên instance cho vector của bạn.

1

Thông số chính thức trong generics phải là đối tượng chứ không phải nguyên thủy. Sử dụng trình bao bọc Integer như sau: Vector<Integer>.

1

bạn có thể sử dụng đối tượng Integer. Sử dụng Vector<Integer>

Vector<Integer>=new Vector<Integer>(); 
2

is there a simple way of having a vector of integers without creating an object that just stores an int?

Đã có loại như vậy, được gọi là Integer. Đó là số boxed type của số primitive type int. Nhưng do cách mà generics in Java được triển khai, chúng không hỗ trợ các thông số loại là nguyên thủy. Thay vào đó, đối với nguyên thủy, bạn phải sử dụng kiểu đóng hộp. Vì vậy, trong trường hợp của bạn

Vector<Integer> vector = new Vector<Integer>(); 

Bạn có thể tận dụng thực tế là primitives are auto boxed/unboxed to/from their boxed type để viết mã như

vector.add(42); 

int answer = vector.get(42); 

Trình biên dịch sẽ chuyển đổi này để boxing thích hợp và các hoạt động unboxing.

+1

Tại sao tất cả các bạn tiếp tục đăng một câu trả lời giống nhau? –

+1

Có thể để có được upvotes – AlexWien

+0

Ông đã nhận được câu trả lời của mình trong bình luận đầu tiên. Thật lố bịch khi đăng tất cả những câu trả lời giống nhau này. –