In this guide, you will learn how to pass a list as an argument to a method with Varargs. As we learned in the Java Varargs detailed guide, that varargs can accept variable arguments. Here, we will see how a list elements can be passed as arguments to a method.
Passing a List elements to a method with Varargs parameter
In this example, we have a list of string elements. To pass the list to the method displayParam()
, which accepts variable arguments, we are using toArray() method to convert the list to an array as shown in the following example.
import java.util.List; public class JavaExample { public void displayParam(String... args) { System.out.println("Print Varargs method arguments: "); for (String str : args) { System.out.println(str); } } public static void main(String[] args) { JavaExample obj = new JavaExample(); List<String> myList = List.of("Apple", "Orange", "Banana"); obj.displayParam(myList.toArray(new String[0])); } }
Output:
Passing List of integer elements to Varargs method:
This is same as the above program except that here, the list contains integer elements.
import java.util.List; public class JavaExample { public void displayParam(Integer... args) { System.out.println("Print Varargs method arguments: "); for (int num : args) { System.out.println(num); } } public static void main(String[] args) { JavaExample obj = new JavaExample(); List<Integer> myList = List.of(1, 3, 5, 7, 9); obj.displayParam(myList.toArray(new Integer[0])); } }
Output:
Print Varargs method arguments: 1 3 5 7 9
Passing an ArrayList to the Varargs method
The logic is similar and pretty straight forward. We are converting the ArrayList to array and passing it to the method same as we done in above examples.
import java.util.ArrayList; import java.util.Arrays; public class JavaExample { public void displayParam(String... args) { for (String s : args) { System.out.println(s); } } public static void main(String[] args) { JavaExample obj = new JavaExample(); // creating a String array. To pass int elements // create integer array like this: // Integer[] arr = {2, 4, 6, 8}; String[] str = {"Hi", "Hello", "Bye"}; ArrayList<String> arrList = new ArrayList<>(Arrays.asList(str)); obj.displayParam(arrList.toArray(new String[0])); } }
Output:
Hi Hello Bye