Я определил, что Java ArrayList.add
похож на JavaScript.Array.push
Я застрял в поиске ArrayList
функций, похожих на следующие
Array.pop
Array.shift
Array.unshift
Я склоняюсь кArrayList.remove[At]
ArrayList
уникален по своим стандартам именования. Вот эквиваленты:
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
Обратите внимание, что элемент unshift
не удаляется , а добавляется к списку. Также обратите внимание, что поведение в крайних случаях может отличаться между Java и JS, поскольку у каждого из них есть свои стандарты.
.push
?Array.push -> ArrayList.add
, и , в частности вопрос оpop
,shift
иunshift
. Прочитав это еще раз, я собираюсь добавить больше пояснений и одновременно добавить.push
.Некоторое время назад я столкнулся с этой проблемой, и я нашел, что
java.util.LinkedList
она лучше всего подходит для моего случая. У него есть несколько методов с разными именами, но они делают то, что нужно:push() -> LinkedList.addLast(); // Or just LinkedList.add(); pop() -> LinkedList.pollLast(); shift() -> LinkedList.pollFirst(); unshift() -> LinkedList.addFirst();
источник
LinkeList
добавляетArrayList
вList
интерфейс методы, которые были бы очень неэффективными , вот что меня смутило. Эти методы приходят отDeque
иQueue
интерфейсов , которые он реализует, ноArrayList
не.может быть вы хотите взглянуть
java.util.Stack
класс. у него есть методы push, pop. и реализовал интерфейс List.для shift / unshift вы можете сослаться на ответ @Jon.
однако что-то из ArrayList, о котором вы можете захотеть позаботиться, arrayList не синхронизируется. но стек есть. (подкласс Vector). Если у вас есть требования к потокобезопасности, Stack может быть лучше, чем ArrayList.
источник
Отличный ответ Джона .
Но я ленив и ненавижу печатать, поэтому я создал простой пример вырезания и вставки для всех других людей, подобных мне. Наслаждайтесь!
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] } }
источник
Библиотека Underscore-java содержит методы push (значения), pop (), shift () и unshift (значения).
Пример кода:
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"]
источник