Подтвердить что ты не робот

Java howto ArrayList push, pop, shift и unshift

Я определил, что Java ArrayList.add похож на JavaScript Array.push

Я застрял в поиске функций ArrayList, похожих на следующие

  • Array.pop
  • Array.shift
  • Array.unshift Я склоняюсь к ArrayList.remove[At]

Последний из них является самым важным для того, над чем я сейчас работаю (Android). Спасибо заранее!

4b9b3361

Ответ 1

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, поскольку каждый из них имеет свои собственные стандарты.

Ответ 2

Я столкнулся с этой проблемой некоторое время назад, и я нашел java.util.LinkedList для моего случая. Он имеет несколько методов, с разными именами, но они делают то, что необходимо:

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

Ответ 3

Возможно, вы хотите посмотреть класс java.util.Stack. он имеет методы push, pop. и реализованный интерфейс List.

для shift/unshift, вы можете ссылаться на @Jon ответ.

однако, что-то из ArrayList, которое может вам понадобиться, arrayList синхронизируется не. но Stack. (подкласс класса Vector). Если у вас есть потокобезопасное требование, Stack может быть лучше, чем ArrayList.

Ответ 4

Библиотека поддерева-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"]

Ответ 5

Отличный ответ от Джона.

Я ленив, хотя и мне не нравится печатать, поэтому я создал простой пример вырезания и вставки для всех других людей, которые похожи на меня. Наслаждайтесь!

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]

        // pop(): Remove an item from the end of an array
        animals.remove(animals.size() - 1);
        System.out.println(animals); // [Lion, Tiger, Cat, Dog]

        // unshift(): Add items to the beginning of an array
        animals.add(0, "Penguin");
        System.out.println(animals); // [Penguin, Lion, Tiger, Cat, Dog]

        // shift(): Remove an item from the beginning of an array
        animals.remove(0);
        System.out.println(animals); // [Lion, Tiger, Cat, Dog]

    }

}