J'ai déterminé qu'un Java ArrayList.add
est similaire à un JavaScriptArray.push
Je n'arrive pas à trouver des ArrayList
fonctions similaires aux suivantes
Array.pop
Array.shift
Array.unshift
Je me penche versArrayList.remove[At]
ArrayList
est 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 unshift
cela 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 surpop
,shift
etunshift
. En relisant ceci, je vais ajouter plus d'explications et ajouter.push
en même temps.J'étais confronté à ce problème il y a quelque temps et j'ai trouvé que c'était
java.util.LinkedList
mieux 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();
la source
LinkeList
ajoute des méthodes qui seraient très inefficaces surArrayList
l'List
interface, c'est ce qui m'a dérouté. Ces méthodes proviennent des interfacesDeque
etQueue
qu'elle implémente, maisArrayList
pas.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.
la source
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 source
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"]
la source