Java String array: есть ли размер метода? - PullRequest
145 голосов
/ 28 мая 2009

Я пришел из фона php, а в php есть функция array_size(), которая сообщает вам, сколько элементов в массиве используется.

Существует ли аналогичный метод для массива String[]? Спасибо.

Ответы [ 11 ]

267 голосов
/ 28 мая 2009

Да, .length (как свойство, а не метод):

String[] array = new String[10];
int size = array.length;
44 голосов
/ 28 мая 2009
array.length

На самом деле это последний элемент массива, а не метод.

19 голосов
/ 31 декабря 2011

Также, вероятно, полезно отметить, что если у вас есть многомерный массив, вы можете получить соответствующее измерение, просто добавив '[0]' к массиву, который запрашиваете, пока не достигнете соответствующей оси / кортежа / измерение.

Это, вероятно, лучше объяснить следующим кодом:

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
    }

}

, который производит вывод:

5
12
15 голосов
/ 28 мая 2009

свойство array.length

это публичная и конечная собственность. Это окончательно, потому что массивы в Java неизменны по размеру (но изменяются по значению элемента)

14 голосов
/ 28 мая 2009

Массивы являются объектами, и они имеют поле длины.

String [] haha ​​= {"olle", "bulle"};

хаха. Длина будет 2

11 голосов
/ 28 мая 2009

В Java есть поле length, которое вы можете использовать в любом массиве, чтобы узнать его размер:

    String[] s = new String[10];
    System.out.println(s.length);
8 голосов
/ 29 мая 2009

Если вы хотите, чтобы функция делала это

Object array = new String[10];
int size = Array.getlength(array);

Это может быть полезно, если вы не знаете, какой тип массива у вас есть, например. int [], byte [] или Object [].

5 голосов
/ 28 мая 2009

Ответ "Все из них". Массив Java выделяется с фиксированным количеством слотов элементов. Атрибут "длина" скажет вам, сколько. Это число является неизменным для жизни массива. Для эквивалента с изменяемым размером вам нужен один из классов java.util.List, где вы можете использовать метод size (), чтобы узнать, сколько элементов используется.

Однако есть «Используется», а затем Используется . В массиве объектов класса вы можете иметь слоты элементов, элементы которых являются нулевыми объектами, поэтому, даже если они учитываются в атрибуте длины, но в определениях большинства людей они не используются (YMMV, в зависимости от приложения). Нет встроенной функции для возврата нулевых / ненулевых значений.

Объекты списка имеют еще одно определение «В использовании». Чтобы избежать чрезмерного создания / уничтожения базовых структур хранения, в этих классах обычно есть некоторые отступы. Он используется внутри, но не учитывается в возвращаемом методе size (). И если вы попытаетесь получить доступ к этим элементам без расширения списка (с помощью методов добавления), вы получите недопустимое исключение индекса.

Таким образом, для списков у вас может быть «Используется» для ненулевых, зафиксированных элементов, Все зафиксированные элементы (включая нулевые элементы) или Все элементы, включая пространство расширения, выделенное в настоящее время.

4 голосов
/ 16 июня 2015

Существует разница между длиной String и array для уточнения:

int a[] = {1, 2, 3, 4};
String s = "1234";

a.length //gives the length of the array

s.length() //gives the length of the string
2 голосов
/ 16 ноября 2011

Все приведенные выше ответы являются правильными. Важно отметить, что массивы имеют атрибут длины, но не метод длины. Всякий раз, когда вы используете строки и массивы в Java, вы можете столкнуться с тремя основными моделями:

  1. String s = новая строка ("vidyasagar");
    System.out.println (s.length ()); // В этом случае мы используем только Строка. Нет атрибута длины для строк. мы должны использовать length () способ.
  2. int [] s = new int [10]; System.out.println (s.length); //мы тут использовать атрибут длины массивов.
  3. String [] s = новая строка [10];
    System.out.println (s.length); // Здесь, хотя тип данных Строка, это не единственная строка. s является ссылкой для массива Строки. Таким образом, мы используем атрибут длины массивов, чтобы выразить, как в этот массив может поместиться много строк.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...