Tengo que buscar el par coincidente de los valores almacenados en una LinkedHashMap.
He probado el siguiente código pero su dando el verdadero para cualquier valor existe, pero sólo quiero que devuelva cierto cuando el partido correspondiente valor con el valor de la clave.
bt2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
if(CheckValueExample.checkRelationship(txtKey.getText(),txtValue.getText())==true)
System.out.println("Pair Match");
else
System.out.println("No-Pair Match");
} catch (Exception ex) {
Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
Método para pares coincidentes:
public static boolean checkRelationship(String key, String value) {
HashMap<String, String> hashmap = new LinkedHashMap<String, String>();
// Adding Key and Value pairs to HashMap
hashmap.put("Bus","Land_Vehicle");
hashmap.put("SchoolBus","Bus");
hashmap.put("Truck","Land_Vehicle");
hashmap.put("Land_Vehicle","Vehicle");
boolean flag=false;
if(hashmap.containsKey(key)&&hashmap.containsValue(value))
flag=true;
else
flag=false;
return flag;
}
Supongamos que cuando entró en clave es "Bus" y el valor introducido es "Land_Vehicle"; Sólo entonces se debe devolver verdadero.
Cualquier otra forma alternativa de hacer esto también es apreciable, y, básicamente, tengo que coincidir con el par almacenada en el archivo JSON.
Sólo tiene que utilizar hashmap.containsKey(key) && hashmap.get(key).equals(value)
para comprobar la relación.
Se obtiene el valor de key
si existe y lo compara con lo dado value
.
Aquí está el método completo:
public static boolean checkRelationship(String key, String value) {
return hashmap.containsKey(key) && hashmap.get(key).equals(value);
}
También debe inicializar el HashMap
sólo una vez (por ejemplo, en el static {}
bloque) y no cada vez que se llama al método.