variable type the know how example data java collections

type - ¿Cómo uso los literales de colección en Java 7?



stringtokenizer java example (3)

Debe definir una implementación de mapa concreta, opcionalmente combinada con la inicialización de doble refuerzo:

Map<Character, Color> map = new HashMap<Character, Color>() {{ put(new Character(''r''), Color.red); put(new Character(''b''), Color.black ); }};

He intentado la siguiente línea:

Map<Character, Color> map={new Character(''r''):Color.red,new Character(''b''):Color.black};

Pero Netbeans 7 rechaza esto, con el mensaje de error ''{'' expected, '';'' expected ''{'' expected, '';'' expected

He establecido el formato Fuente / Binario como ''JDK 7'' y la plataforma como ''JDK 1.7'', ¿hay algo más que deba hacer?


Ni Java 7 ni Java 8 son compatibles con los literales de recopilación, como se explica en esta pregunta: ¿Las mejoras de la recopilación de Project Coin estarán en JDK8?

Puede usar la biblioteca de Guava de Google si solo necesita colecciones inmutables. ImmutableList , ImmutableSet e ImmutableMap tienen varios métodos de fábrica sobrecargados o incluso constructores que facilitan la creación de colecciones:

List<Integer> list = ImmutableList.of(1, 1, 2, 3, 5, 8, 13, 21); Set<String> set = ImmutableSet.of("foo", "bar", "baz", "batman"); Map<Integer, String> map = ImmutableMap.of(1, "one", 2, "two", 3, "three");

EDITAR

Java 9 ha agregado métodos de fábrica de recopilación similares a los de Guava:

List.of(a, b, c); Set.of(d, e, f, g); Map.of(k1, v1, k2, v2) Map.ofEntries( entry(k1, v1), entry(k2, v2), entry(k3, v3), // ... entry(kn, vn) );


Para ampliar un poco la respuesta de Thomas ... El mapa es una interfaz, y se debe crear una instancia a través de una de las implementaciones concretas asociadas (HashMap, TreeMap o LinkedHashMap). Todavía es una buena práctica; sin embargo, declarar su variable de referencia como la implementación de la interfaz en lugar del concreto específico, ya que proporciona flexibilidad futura.

Sin embargo, con respecto al fragmento de código, creo que todavía necesita los pares de clave-valor definidos en el lado de la asignación de la declaración. Entonces, me gustaría cambiar:

Map<Character, Color> map = new HashMap<>() {{

a

Map<Character, Color> map = new HashMap<Character, Color>() {{