Tôi đến từ một nền tảng php và trong php, có một array_size()
hàm cho bạn biết có bao nhiêu phần tử trong mảng được sử dụng.
Có một phương pháp tương tự cho một String[]
mảng? Cảm ơn.
Tôi đến từ một nền tảng php và trong php, có một array_size()
hàm cho bạn biết có bao nhiêu phần tử trong mảng được sử dụng.
Có một phương pháp tương tự cho một String[]
mảng? Cảm ơn.
Câu trả lời:
Có, .length
(giống như thuộc tính, không phải là một phương thức):
String[] array = new String[10];
int size = array.length;
array.length
Nó thực sự là một thành viên cuối cùng của mảng, không phải là một phương thức.
Ngoài ra, có thể hữu ích khi lưu ý rằng nếu bạn có Mảng nhiều chiều, bạn có thể nhận được kích thước tương ứng chỉ bằng cách thêm '[0]' vào mảng bạn đang truy vấn cho đến khi bạn đến trục / tuple / chiều thích hợp.
Điều này có lẽ được giải thích tốt hơn với mã sau đây:
public class Test {
public static void main(String[] args){
String[][] moo = new String[5][12];
System.out.println(moo.length); //Prints the size of the First Dimension in the array
System.out.println(moo[0].length);//Prints the size of the Second Dimension in the array
}
}
Mà tạo ra đầu ra:
5
12
Mảng là các đối tượng và chúng có trường độ dài.
Chuỗi [] haha = {"olle", "bulle"};
haha.length sẽ là 2
Trong java có một length
trường mà bạn có thể sử dụng trên bất kỳ mảng nào để tìm ra kích thước của nó:
String[] s = new String[10];
System.out.println(s.length);
Nếu bạn muốn một chức năng để làm điều này
Object array = new String[10];
int size = Array.getlength(array);
Điều này có thể hữu ích nếu bạn không biết loại mảng nào bạn có, ví dụ int [], byte [] hoặc Object [].
Câu trả lời là "Tất cả chúng". Một mảng java được phân bổ với một số lượng phần tử cố định. Thuộc tính "length" sẽ cho bạn biết có bao nhiêu. Con số đó là bất biến cho cuộc sống của mảng. Để tương đương có thể thay đổi kích thước, bạn cần một trong các lớp java.util.List - nơi bạn có thể sử dụng phương thức size () để tìm hiểu có bao nhiêu phần tử đang được sử dụng.
Tuy nhiên, có "Đang sử dụng" và sau đó có Đang sử dụng . Trong một mảng đối tượng lớp, bạn có thể có các vị trí phần tử có các phần tử là các đối tượng null, vì vậy mặc dù chúng được tính trong thuộc tính độ dài, nhưng hầu hết các định nghĩa của mọi người, chúng không được sử dụng (YMMV, tùy thuộc vào ứng dụng). Không có hàm dựng sẵn để trả về số lượng null / không null.
Danh sách các đối tượng có một định nghĩa khác về "Đang sử dụng". Để tránh việc tạo / phá hủy quá mức các cấu trúc lưu trữ bên dưới, thường có một số phần đệm trong các lớp này. Nó được sử dụng nội bộ, nhưng không được tính trong phương thức size () được trả về. Và nếu bạn cố gắng truy cập các mục đó mà không mở rộng Danh sách (thông qua các phương thức thêm), bạn sẽ nhận được một ngoại lệ chỉ mục bất hợp pháp.
Vì vậy, đối với Danh sách, bạn có thể có "Đang sử dụng" cho các phần tử không có giá trị, được cam kết, Tất cả các phần tử đã cam kết (bao gồm các phần tử null) hoặc Tất cả các phần tử, bao gồm cả không gian mở rộng hiện được phân bổ.
Tất cả các câu trả lời trên là đúng. Điều quan trọng cần quan sát là mảng có thuộc tính length nhưng không phải phương thức length. Bất cứ khi nào bạn sử dụng chuỗi và mảng trong java, ba mô hình cơ bản bạn có thể phải đối mặt là:
Không thực sự là câu trả lời cho câu hỏi của bạn, nhưng nếu bạn muốn có một cái gì đó giống như một mảng có thể phát triển và thu hẹp, bạn không nên sử dụng một mảng trong java. Bạn có thể là tốt nhất bằng cách sử dụng ArrayList hoặc thực hiện Danh sách khác.
Sau đó, bạn có thể gọi kích thước () trên đó để có kích thước.