2009-02-23 50 views
65

Tôi biết làm thế nào để làm điều đó bình thường, nhưng tôi có thể thề rằng bạn có thể điền vào như một [0] = {0,0,0,0}; Làm thế nào để bạn làm điều đó theo cách đó? Tôi đã thử Google, nhưng tôi đã không nhận được bất cứ điều gì hữu ích.Làm cách nào để lấp đầy các mảng trong Java?

+1

Câu hỏi thực sự bạn nên hỏi là làm thế nào để làm cho công việc này: a [0] = someFunction (4, 0) ;. Vì lý do đó, câu trả lời "đúng" đã chọn không hữu ích. – HoldOffHunger

Trả lời

54

Bạn cũng có thể làm điều đó như một phần của việc kê khai:

int[] a = new int[] {0, 0, 0, 0}; 
+0

Đây là những gì tôi đã nghĩ đến, cảm ơn bạn! – William

+10

int [] a = new int [4] sẽ thực hiện điều tương tự, vì 0 là giá trị mặc định. –

+3

Hoặc int [] a = {0, 0, 0, 0}; . Bạn chỉ cần int mới [] nếu hằng số không được sử dụng ngay lập tức trong một khai báo. – starblue

15

Arrays.fill(). Phương thức này bị quá tải cho các kiểu dữ liệu khác nhau và thậm chí có cả một biến thể chỉ lấp đầy một phạm vi chỉ mục được chỉ định.

229

Kiểm tra các phương pháp Arrays.fill.

int[] array = new int[4]; 
Arrays.fill(array, 0); 
+20

+1 vì tôi không biết về phương thức Arrays.fill(). Tôi luôn làm điều đó với vòng lặp for. : D – Spoike

+7

@GrantGalitz Tôi thực sự không thuyết phục về điều đó, bạn có liên kết đến một bài viết hay không? Bởi vì không giống như các lớp 'System',' java.util.Arrays' là một lớp được thực hiện bởi Java, và tìm kiếm qua nguồn cho thấy rằng nó không có ** khác với một vòng lặp bình thường. – Pacerier

+7

Mảng int được khởi tạo bằng 0, vì vậy dòng thứ hai không cần thiết trong ví dụ trên. –

5

Một mảng có thể được khởi tạo bằng cách sử dụng cú pháp new Object {}.

Ví dụ, một mảng của String thể được khai báo bởi một trong hai:

String[] s = new String[] {"One", "Two", "Three"}; 
String[] s2 = {"One", "Two", "Three"}; 

Primitives cũng có thể được khởi tạo tương tự bằng cách:

int[] i = new int[] {1, 2, 3}; 
int[] i2 = {1, 2, 3}; 

Hoặc một mảng của một số Object:

Point[] p = new Point[] {new Point(1, 1), new Point(2, 2)}; 

Tất cả chi tiết về mảng trong Java được viết bằng Chapter 10: Arrays trong The Java Language Specifications, Third Edition.

2

Phần tử mảng trong Java được khởi tạo thành giá trị mặc định khi được tạo. Đối với các con số này có nghĩa là chúng được khởi tạo là 0, cho các tham chiếu chúng là null và đối với các boolean chúng là false.

Để lấp đầy những mảng với một cái gì đó khác mà bạn có thể sử dụng Arrays.fill() hoặc như một phần của việc kê khai

int[] a = new int[] {0, 0, 0, 0}; 

Không có phím tắt trong Java để điền vào mảng với hàng loạt số học như trong một số ngôn ngữ kịch bản.

9

Trong Java-8, bạn có thể sử dụng IntStream để tạo luồng các số mà bạn muốn lặp lại, sau đó chuyển đổi thành mảng. Cách tiếp cận này tạo ra một biểu thức phù hợp để sử dụng trong một initializer:

int[] data = IntStream.generate(() -> value).limit(size).toArray(); 

Ở trên, sizevalue là những biểu hiện sản xuất số lượng các mục mà bạn muốn tot lặp lại và giá trị được lặp đi lặp lại.

Demo.

5
Arrays.fill(arrayName,value); 

trong java

int arrnum[] ={5,6,9,2,10}; 
for(int i=0;i<arrnum.length;i++){ 
    System.out.println(arrnum[i]+" "); 
} 
Arrays.fill(arrnum,0); 
for(int i=0;i<arrnum.length;i++){ 
    System.out.println(arrnum[i]+" "); 
} 

Output

5 6 9 2 10 
0 0 0 0 0 
-2
int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
+5

Chào mừng đến với trang web! Câu trả lời này sẽ được cải thiện nếu bạn có thể thêm một số giải thích cho nó, chứ không phải chỉ là một số đoạn mã xuống. Tại sao điều này lại phù hợp hơn với bất kỳ câu trả lời nào khác đã được cung cấp trong câu hỏi 7 năm này? – Mogsdad

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