Переменное число аргументов
Переменное число аргументов (varargs) позволяет передавать в метод произвольное количество значений одного типа. В объявлении метода такой параметр указывается с тремя точками после типа. Внутри метода этот параметр доступен как обычный массив. Переменный параметр должен быть последним в списке параметров метода.
Синтаксис
returnType methodName(type... parameterName)
Пример
Давайте создадим метод, который принимает переменное число аргументов и выводит их сумму:
public class Main
{
public static void main(String[] args)
{
System.out.println(sum(1, 2, 3));
System.out.println(sum(4, 5));
System.out.println(sum());
}
public static int sum(int... nums)
{
int res = 0;
for (int num : nums) {
res += num;
}
return res;
}
}
Результат выполнения кода:
6
9
0
Пример
Давайте передадим в метод переменное число строк и объединим их через пробел:
public class Main
{
public static void main(String[] args)
{
System.out.println(join("abcde", "12345", "test"));
System.out.println(join("hello"));
}
public static String join(String... words)
{
String res = "";
for (int i = 0; i < words.length; i++) {
if (i > 0) {
res += " ";
}
res += words[i];
}
return res;
}
}
Результат выполнения кода:
"abcde 12345 test"
"hello"
Пример
Давайте передадим массив в переменный параметр напрямую:
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = List.of(1, 2, 3, 4, 5);
printAll(list.toArray(new Integer[0]));
}
public static void printAll(Integer... nums)
{
for (Integer num : nums) {
System.out.println(num);
}
}
}
Результат выполнения кода:
1
2
3
4
5