66 votes

Comment ajouter un élément à un index/position spécifique dans LinkedHashMap ?

J’ai un LinkedHashMap ordonné et je veux ajouter un élément à un index spécifique, disons à la première place ou à la dernière place de la carte. Comment puis-je ajouter un élément dans LinkedHashMap à une position spécifique ?

Même si je pouvais ajouter un élément à la position FIRST ou LAST dans LinkedHashMap aiderait!

7voto

tamalet Points 91
public static <K, V> void add(LinkedHashMap<K, V> map, int index, K key, V value) {
  assert (map != null);
  assert !map.containsKey(key);
  assert (index >= 0) && (index < map.size());

  int i = 0;
  List<Entry<K, V>> rest = new ArrayList<Entry<K, V>>();
  for (Entry<K, V> entry : map.entrySet()) {
    if (i++ >= index) {
      rest.add(entry);
    }
  }
  map.put(key, value);
  for (int j = 0; j < rest.size(); j++) {
    Entry<K, V> entry = rest.get(j);
    map.remove(entry.getKey());
    map.put(entry.getKey(), entry.getValue());
  }
}

6voto

rock_walker Points 70

Il suffit de vous diviser sur 2 tableaux. Faites le premier tableau avec la taille et mettez à la fin nouveau `` . Remplissez ensuite le premier tableau avec les entrées du second

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X