Percorrendo um LinkedHashMap

Galera, vejo duas formas de se percorrer um LinkedHashMap para que eu possa saber qual a chave associada com cada objeto.

Primeira: Iterar sobre as chaves e para cada chave obter o objeto.
Segunda: Iterar sobre as chaves e sobre os objetos armazenados, supondo que cada chave se refere ao objeto armazenado, na mesma sequência.

Qual delas seria a mais eficiente?

Segundo a documentação desta classe, a lista ligada que é mantida pelo objeto é quem dita a ordem de iteração, assim a ordem é a mesma de inserção.
[quote]
Hash table and linked list implementation of the Map interface, with predictable iteration order. This implementation differs from HashMap in that it maintains a doubly-linked list running through all of its entries. This linked list defines the iteration ordering, which is normally the order in which keys were inserted into the map (insertion-order). Note that insertion order is not affected if a key is re-inserted into the map. (A key k is reinserted into a map m if m.put(k, v) is invoked when m.containsKey(k) would return true immediately prior to the invocation.)
[/quote]