2012-05-19 36 views
8

Tôi muốn hiển thị một biểu đồ và để hiển thị rằng tôi cần số nguyên values.I có được điều này từ mã của tôichuyển đổi của bộ sưu tập để int mảng

Collection c = Sort.values(); 

Có cách nào mà tôi chuyển đổi bộ sưu tập theo cách như vậy mà ? i có được giá trị số nguyên i có được điều này khi tôi in c thu

[64770, 26529, 13028, 848, 752, 496] 

Trả lời

15

Giả sử các giá trị là kiểu Integer, bạn có thể thử này:

Collection c = Sort.values(); 
Integer[] a = (Integer[])(c.toArray(new Integer[c.size()])); 
+0

Cảm ơn, nó hoạt động :) – Xara

+0

Vì mục đích hiệu quả, câu trả lời này có thể thay đổi để có được một 'int []' thay vì 'Integer []'? Và đây có phải là phiên bản Java cũ hơn trước khi autoboxing không? – SimonT

+0

@SimonT "chúng ta có thể sử dụng' int [] '?" Không, không phải trong Java. "là điều này cho Java trước khi autoboxing?" Không có autoboxing trong mã này (nó không cần thiết ở đây). Bộ sưu tập có thể được làm chung, nhưng điều đó cũng không cần thiết. – dasblinkenlight

3
for (Integer value : c) { 
    int i = value.intValue(); 
    //do something with either value or i 
} 
+0

Quá phức tạp. Do autoboxing, bạn có thể viết ngay lập tức: 'for (int i: c) {' - không có intValue - thể dục dụng cụ cần thiết. –

+0

Vâng, đó chỉ là để làm rõ những gì xảy ra và không chắc chắn nếu muốn một Integer hoặc int. Do đó nhận xét của tôi trong đoạn mã về "làm điều gì đó với một trong hai giá trị hoặc tôi" –

1

Đơn giản chỉ cần:

Integer[] yourArrayVar = yourCollectionVar.toArray(new Integer[0]); 

java chỉ cần biết loại của mảng để sản xuất.

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