Skip to content
Advertisement

Create and populate TreeMap in one line

Like an array new Integer[]{ 1, 2, 3 }, can I create and populate a TreeMap using just one line?

// I want to use it in situations like this:
this.lookFor( new TreeMap( {...} ) );

Any chances for HashMap or LinkedHashMap too?

Advertisement

Answer

There is no built-in syntax for specifically initializing maps. However, you can take advantage of a special syntax known as “double brace initialization”.

Map<String, Integer> map = new TreeMap<String, Integer>() {{ put("one", 1); put("two", 2); put("three", 3); }};

The outer pair of braces means that you are declaring and initializing an anonymous inner class that extends TreeMap. The inner pair of braces represents an instance initializer, code that is run when an instance is created.

User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement