Java ha ordinato la mappa

In Java, esiste un object che si comporta come una mappa per l’archiviazione e l’accesso a coppie chiave / valore, ma può restituire un elenco ordinato di chiavi e un elenco ordinato di valori, in modo tale che gli elenchi di chiavi e valori siano nello stesso ordine?

Quindi, come spiegazione per codice, sto cercando qualcosa che si comporta come la mia fittizia OrderedMap:

OrderedMap om = new OrderedMap(); om.put(0, "Zero"); om.put(7, "Seven"); String o = om.get(7); // o is "Seven" List keys = om.getKeys(); List values = om.getValues(); for(int i = 0; i < keys.size(); i++) { Integer key = keys.get(i); String value = values.get(i); Assert(om.get(key) == value); }