我有一个地图,想从中提取每个键的最后一个值,但我无法获取它:
即每个键的最后NUM条记录。
import java.util.LinkedHashMap;
import java.util.Map;
class MyTestClass {
private static final String almacenNombreClase = "Professor";
private static final String TXT = "TXT";
private static final String NUM = "NUM";
public static void main(String[] args) {
Map<String, Map<String, String>> mapNombreClaseYPropiedades = new LinkedHashMap<>();
mapNombreClaseYPropiedades.put("Professor", Map.of("texto", TXT,
"tipo", TXT,
"prueba", NUM,
"dificultad", NUM ));
mapNombreClaseYPropiedades.put("Exam", Map.of("texto", TXT,
"nivel", NUM ));
//values of mapNombreClaseYPropiedades
Map<String, String> valores = mapNombreClaseYPropiedades.get(almacenNombreClase);
valores.forEach((k, v) -> {
// Here I want to check the last element of each entry
if (v instanceof String ) {
System.out.println("String " + k + ",");
} else {
System.out.println("Integer " + k + ",");
}
});
// I want to see output
"dificultad=NUM"
"nivel=NUM"
}
}
提取:
dificultad=NUM
nivel=NUM
即每个键的最后NUM条记录。
texto
、tipo
、prueba
、dificultad
和nivel
是固定的吗?也就是说,您是否事先知道它们所有的内容?还是它们完全是动态的?也就是说,它们可以是任何东西。 - fpsNUM
。然而,映射是无序的,因此每次执行解决方案时结果都会改变。可以使用String->List<String>来定义Prof->字段列表之间的映射,然后有一个映射将String->数据类型(String/Class)。然后可以调整已接受的解决方案以使其正常工作。 - Rob EvansMap.of()
中定义的最后一个值?键/值条目可能与Map.of()
初始化器中出现的顺序不同。 - WJS