Java - Passing Arrays and Collections as Method Arguments

Passing array instances as arguments in a single line of code is very useful. For example, you can do something like this:

addNumbers(new int[] {1,2,3});

This works perfectly, but for collections, you cannot do that directly. However, by using anonymous inner classes with instance initialization, we can achieve a similar effect:

addNumbers(new ArrayList<Integer>(3) );

Expanding this code makes its mechanism clearer:

addNumbers(new ArrayList<Integer>(3) { // Anonymous class definition
  // Instance initialization block
  {
    add(1);
    add(2);
    add(3);
  }
});

For completeness, here are the addNumbers methods used in the examples:

private static int addNumbers(int[] numbers) {
    int result = 0;
    for (int number : numbers) {
        result += number;
    }
    return result;
}

private static Integer addNumbers(Collection<Integer> numbers) {
    Integer result = 0;
    for (Integer number : numbers) {
        result += number;
    }
    return result;
}



Enjoy Reading This Article?

Here are some more articles you might like to read next: