2012-06-17 38 views
21

Tôi có đoạn mã sau:new ArrayList <int>() thất bại trong Java

List<int> intList = new ArrayList<int>(); 
for (int index = 0; index < ints.length; index++) 
{ 
    intList.add(ints[index]); 
} 

Nó mang lại cho tôi một lỗi ...

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

Lỗi này xảy ra trên dòng bắt đầu với List. Ai đó có thể giải thích tại sao tôi nhận được lỗi?

Trả lời

41

Generics trong Java được not applicable để loại nguyên thủy như trong int. Có lẽ bạn nên sử dụng the wrapper types như trong Integer:

List<Integer> ints = ... 

Và, để truy cập vào một List, bạn cần phải sử dụng ints.get(index)

4

bạn nên sử dụng số nguyên thay vì int vì danh sách yêu cầu đối tượng không phải là loại nguyên thủy. nhưng bạn vẫn có thể thêm phần tử kiểu int vào danh sách Số nguyên của mình

9

Bạn chỉ có thể sử dụng loại Đối tượng trong phần <>, trong khi bạn đang cố gắng sử dụng loại nguyên thủy. Hãy thử điều này ...

List<Integer> intList = new ArrayList<Integer>(); 

Sau đó bạn cần phải truy cập vào các giá trị sử dụng intList.get(index)intList.set(index,value) (và cũng intList.add(value) như bạn đang cố gắng để làm)

1

Bạn có thể sử dụng bộ sưu tập nguyên thủy có sẵn trong Eclipse Collections. Bộ sưu tập Eclipse có List, Set, BagMap cho tất cả các nguyên thủy. Các yếu tố trong các bộ sưu tập nguyên thủy được duy trì như nguyên thủy và không có quyền anh diễn ra.

Bạn có thể khởi tạo một IntList như thế này:

MutableIntList intList = IntLists.mutable.empty(); 

Lưu ý: Tôi là một người đóng góp cho Eclipse Bộ sưu tập.

Các vấn đề liên quan