Came across this the other day on Stack Overflow. Turns out there is a way to one line create an ArrayList and fill it all at the same time.
ArrayList<Integer> lst = new ArrayList<Integer>() {{
add(1);
add(2);
}};
It looks odd, mostly because that’s the first time I’d come across it. But it’s the same as doing this.
ArrayList<Integer> lst = new ArrayList<>(); lst.add(1); lst.add(2);
One slight technical difference. The double braces creates an anonymous inner class to fill. Not sure if what cases that would matter though.
Also played a bit today and found that you have to specify the data type on both sides of the declaration. Feels weird to put Integer in both sets of <>.
Be First to Comment