Mapa ordenado de Java

En Java, ¿hay algún objeto que actúe como un Mapa para almacenar y acceder a pares clave / valor, pero que pueda devolver una lista ordenada de claves y una lista ordenada de valores, de modo que las listas clave y de valores estén en el mismo orden? @

Así que como explicación por código, estoy buscando algo que se comporte como mi mapa ordenado ficticio:

OrderedMap<Integer, String> om = new OrderedMap<>();
om.put(0, "Zero");
om.put(7, "Seven");

String o = om.get(7); // o is "Seven"
List<Integer> keys = om.getKeys();
List<String> 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);
}

Respuestas a la pregunta(8)

Su respuesta a la pregunta