Para mi programa, quiero leer una clave de un archivo de propiedades y una Lista de valores asociada para la clave.
Recientemente yo estaba tratando de esa maneraArchivo de propiedades con una lista como el valor de una clave individual
public static Map<String,List<String>>categoryMap = new Hashtable<String, List<String>>();
Properties prop = new Properties();
try {
prop2.load(new FileInputStream(/displayCategerization.properties));
Set<Object> keys = prop.keySet();
List<String> categoryList = new ArrayList<String>();
for (Object key : keys) {
categoryList.add((String)prop2.get(key));
LogDisplayService.categoryMap.put((String)key,categoryList);
}
System.out.println(categoryList);
System.out.println("Category Map :"+LogDisplayService.categoryMap);
keys = null;
prop = null;
} catch (Throwable e) {
e.printStackTrace();
}
y mi archivo de propiedades es como abajo -
A=APPLE
A=ALPHABET
A=ANT
B=BAT
B=BALL
B=BUS
que quiero para la tecla A debe haber una lista que contiene [APPLE, ALPHABET,ANT]
y B contienen [BAT,BALL,BUS]
.
Así que el mapa debería ser así {A=[APPLE, ALPHABET,ANT], B=[BAT,BALL,BUS]}
pero obtengo {A=[ANT], B=[BUS]}
Realicé búsquedas en Internet de esa forma pero no encontré nada. Ojalá hubiera una manera. ¿Alguna ayuda?
propiedad sólo soportan 'clave, valor' par. cuando hay varias filas con la misma clave, la última gana (incluso eso podría ser un comportamiento "indefinido"). Esa es su entrada alimentada a la categoría. Map no es lo mismo que usted piensa. Sugeriría que escribas una pequeña prueba 'junit'. – Jayan