Ho determinato che Java ArrayList.addè simile a JavaScriptArray.push
Sono bloccato sulla ricerca di ArrayListfunzioni simili alle seguenti
Array.popArray.shiftArray.unshiftMi sto avvicinandoArrayList.remove[At]
Risposte:
ArrayListè unico nei suoi standard di denominazione. Ecco le equivalenze:
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
Nota che unshiftnon rimuove un elemento, ma ne aggiunge uno all'elenco. Si noti inoltre che è probabile che i comportamenti delle maiuscole / minuscole siano diversi tra Java e JS, poiché ognuno di essi ha i propri standard.
.push?
Array.push -> ArrayList.add, e in particolare chiesto pop, shifte unshift. Rileggendolo di nuovo, aggiungerò altre spiegazioni e aggiungerò .pushallo stesso tempo.
Qualche tempo fa stavo affrontando questo problema e ho scoperto che java.util.LinkedListè meglio per il mio caso. Ha diversi metodi, con nomi diversi, ma stanno facendo ciò che è necessario:
push() -> LinkedList.addLast(); // Or just LinkedList.add();
pop() -> LinkedList.pollLast();
shift() -> LinkedList.pollFirst();
unshift() -> LinkedList.addFirst();
LinkeListaggiunge metodi che sarebbe molto inefficiente sulla ArrayList alla Listdell'interfaccia, questo era quello che mi ha confuso. Questi metodi provengono dalle interfacce Dequee Queueche implementa, ma ArrayListnon lo fa.
forse vuoi dare un'occhiata al corso java.util.Stack. ha metodi push e pop. e implementata l'interfaccia List.
per shift / unshift, puoi fare riferimento alla risposta di @ Jon.
tuttavia, qualcosa di ArrayList potrebbe interessarti, arrayList non è sincronizzato. ma Stack lo è. (sottoclasse di Vector). Se hai requisiti thread-safe, Stack potrebbe essere migliore di ArrayList.
Ottima risposta di Jon .
Sono pigro però e odio digitare, quindi ho creato un semplice esempio di taglia e incolla per tutte le altre persone che sono come me. Godere!
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]
}
}
Sottolineato-java libreria contiene i metodi push (valori), pop (), shift () e unshift (valori).
Esempio di codice:
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"]