java howto ArrayList push, pop, shift et unshift

J’ai déterminé qu’un Java ArrayList.add est similaire à un JavaScript Array.push

Je suis coincé sur la recherche de fonctions ArrayList similaires à la suivante

  • Array.pop
  • Array.shift
  • Array.unshift Je me penche vers ArrayList.remove[At]

Le dernier est le plus important pour ce sur quoi je travaille actuellement (Android). Merci d’ avance !

ArrayList est unique dans ses normes de nommage. Voici les équivalences:

 Array.push -> ArrayList.add(Object o); // Append the list Array.pop -> ArrayList.remove(int index); // Remove list[index] Array.shift -> ArrayList.remove(0); // Remove first element Array.unshift -> ArrayList.add(int index, Object o); // Prepend the list 

Notez que unshift ne supprime pas un élément, mais en ajoute un à la liste. Notez également que les comportements en cascade sont probablement différents entre Java et JS, car ils ont chacun leurs propres normes.

J’ai été confronté à ce problème il y a quelque temps et j’ai trouvé java.util.LinkedList est le meilleur pour mon cas. Il a plusieurs méthodes, avec des noms différents, mais elles font ce qui est nécessaire:

 push() -> LinkedList.addLast(); // Or just LinkedList.add(); pop() -> LinkedList.pollLast(); shift() -> LinkedList.pollFirst(); unshift() -> LinkedList.addFirst(); 

peut-être que vous voulez regarder la classe java.util.Stack . il a des méthodes push, pop. et implémenté l’interface de liste.

pour shift / unshift, vous pouvez référencer la réponse de Jon.

Cependant, quelque chose de ArrayList dont vous voudrez peut-être vous soucier, arrayList n’est pas synchronisé. mais Stack est. (sous-classe de Vector). Si vous avez des exigences de thread-safe, Stack peut être mieux que ArrayList.

La bibliothèque Underscore-java contient les méthodes push (values), pop (), shift () et unshift (valeurs).

Exemple de code:

 import com.github.underscore.U: List ssortingngs = Arrays.asList("one", "two", " three"); List newSsortingngs = U.push(ssortingngs, "four", "five"); // ["one", " two", "three", " four", "five"] Ssortingng newPopSsortingng = U.pop(ssortingngs).fst(); // " three" Ssortingng newShiftSsortingng = U.shift(ssortingngs).fst(); // "one" List newUnshiftSsortingngs = U.unshift(ssortingngs, "four", "five"); // ["four", " five", "one", " two", "three"]