2013-12-18 2 views
2

Вы можете мне помочь? Что означает int [] ... массивы в Java? Пример:Что означает int [] ... массивы в Java?

public static int[] concat(int[]... arrays) { 
int length = 0; 
for (int[] array : arrays) { 
    length += array.length; 
} 
+4

См http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html –

+1

Или здесь: Http: // mathbits .com/MathBits/Java/arrays/Declare.htm Похоже, вам нужно начать с самого начала. Кстати, я заглянул в Google. Вы должны сделать то же самое. –

+0

это то же самое, что и 'int [] []' –

ответ

4

Это называется varargs.. notation,

Так что вы можете передать отдельные объекты int[] этому методу ,, не заботясь о No.of аргументов.

Когда вы пишете

public static int[] concat(int[]... arrays) { 

Теперь вы можете использовать этот метод как

Classname.concat(array1,array2,array3) //example1 
Classname.concat(array1,array2) //example2 
Classname.concat(array1,array2,array3,array4) //example3 

Четкое преимуществом является то, что вам не нужно подготовить массив передать метод. Вы можете передать значения этого массива напрямую.

0

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

concat(1,2,3,4,5) или concat(1)

Большинство языков имеют такую ​​функцию, некоторые называют ее var args, другие называют ее params.

1

Это означает, что функция concat может принимать ноль или более массивов целых чисел (int[]). Вот почему вы можете перебрать аргумент arrays, обратившись к одному из массивов, содержащихся на каждой итерации, если таковые имеются. Это называется variable arguments (or varargs).

Проверьте это other question для получения дополнительной информации.

1

Это означает, что вы можете передать ноль, один или несколько массивов int (int[]) вашему методу. Рассмотрим следующий пример

public void method(String ... strings) 

можно назвать, как

  • method()
  • method("s")
  • method("s", "d")
  • ...

Таким образом, ваш метод можно назвать

  • concat()
  • concat(new int[0])
  • concat(new int[0], new int[0])
  • ...
1

Это означает, что вы можете передать метод any number из int[] объектов:

concat(new int[]{1,2}); 
concat(new int[]{1,2}, new int[]{3,4,5}); 
concat(new int[]{1}, new int[]{3,4,5,6}, new int[]{1,1,1,1,1,1,1}); 

Почему это полезно? Понятно почему :)

0

varargs ("...") нотация в основном сообщает, что аргументы могут передаваться как последовательность аргументов (здесь - ints) или как массив аргументов. В вашем случае, поскольку ваш аргумент имеет тип «array of int», он означает, что аргументы могут передаваться как последовательность массивов или как массив массивов int (обратите внимание, что массив массивов вполне эквивалентен многомерному массиву в Java) ,

0

Например у вас есть метод:

void functionName (Object objects...) 
{ 
    Object object1=objects[0]; 
    Object object2=objects[1]; 
    Object object3=objects[2]; 
} 

Вы можете использовать свой метод, как:

Object object1,object2,object3; 

functionName(object1,object2,object3); 
0

Using Variable Arguments

Многоточие (...) определяет переменное число аргументов, а продемонстрирован в следующем методе суммирования.

public static int[] concat(int[]... arrays) 

Используйте метод

concat(val1, val2, val3); 
concat(val1, val2, val3, val3);