J'ai déterminé qu'un Java ArrayList.addest similaire à un JavaScriptArray.push
Je n'arrive pas à trouver des ArrayListfonctions similaires aux suivantes
Array.popArray.shiftArray.unshiftJe me penche versArrayList.remove[At]
Réponses:
ArrayListest unique dans ses normes de dénomination. 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 unshiftcela ne supprime pas un élément, mais en ajoute un à la liste. Notez également que les comportements de cas d'angle sont susceptibles d'être différents entre Java et JS, car ils ont chacun leurs propres normes.
.push?
Array.push -> ArrayList.add, et plus précisément posé des questions sur pop, shiftet unshift. En relisant ceci, je vais ajouter plus d'explications et ajouter .pushen même temps.
J'étais confronté à ce problème il y a quelque temps et j'ai trouvé que c'était java.util.LinkedListmieux pour mon cas. Il a plusieurs méthodes, avec des noms différents, mais ils font ce qui est nécessaire:
push() -> LinkedList.addLast(); // Or just LinkedList.add();
pop() -> LinkedList.pollLast();
shift() -> LinkedList.pollFirst();
unshift() -> LinkedList.addFirst();
LinkeListajoute des méthodes qui seraient très inefficaces sur ArrayList l' Listinterface, c'est ce qui m'a dérouté. Ces méthodes proviennent des interfaces Dequeet Queuequ'elle implémente, mais ArrayListpas.
peut-être que vous voulez prendre un cours de look java.util.Stack. il a des méthodes push, pop. et implémentation de 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 l'est. (sous-classe de Vector). Si vous avez besoin de thread-safe, Stack peut être meilleur que ArrayList.
Excellente réponse de Jon .
Je suis paresseux et je déteste taper, alors j'ai créé un exemple simple de copier-coller pour toutes les autres personnes qui sont comme moi. Prendre plaisir!
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> animals = new ArrayList<>();
animals.add("Lion");
animals.add("Tiger");
animals.add("Cat");
animals.add("Dog");
System.out.println(animals); // [Lion, Tiger, Cat, Dog]
// add() -> push(): Add items to the end of an array
animals.add("Elephant");
System.out.println(animals); // [Lion, Tiger, Cat, Dog, Elephant]
// remove() -> pop(): Remove an item from the end of an array
animals.remove(animals.size() - 1);
System.out.println(animals); // [Lion, Tiger, Cat, Dog]
// add(0,"xyz") -> unshift(): Add items to the beginning of an array
animals.add(0, "Penguin");
System.out.println(animals); // [Penguin, Lion, Tiger, Cat, Dog]
// remove(0) -> shift(): Remove an item from the beginning of an array
animals.remove(0);
System.out.println(animals); // [Lion, Tiger, Cat, Dog]
}
}
La bibliothèque Underscore-java contient les méthodes push (valeurs), pop (), shift () et unshift (valeurs).
Exemple de code:
import com.github.underscore.U:
List<String> strings = Arrays.asList("one", "two", " three");
List<String> newStrings = U.push(strings, "four", "five");
// ["one", " two", "three", " four", "five"]
String newPopString = U.pop(strings).fst();
// " three"
String newShiftString = U.shift(strings).fst();
// "one"
List<String> newUnshiftStrings = U.unshift(strings, "four", "five");
// ["four", " five", "one", " two", "three"]