java howto ArrayList push,pop,shift和unshift

时间:2011-12-09 22:45:23

标签: java arraylist

我确定Java ArrayList.add类似于JavaScript Array.push

我坚持寻找类似于以下<{p>的ArrayList功能

  • Array.pop
  • Array.shift
  • Array.unshift我倾向于ArrayList.remove[At]

5 个答案:

答案 0 :(得分:118)

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之间的角落行为可能不同,因为它们各自都有自己的标准。

答案 1 :(得分:23)

前段时间我遇到了这个问题,我发现java.util.LinkedList最适合我的情况。它有几种方法,具有不同的命名,但它们正在做所需的事情:

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

答案 2 :(得分:14)

也许你想看看java.util.Stack课程。 它有push,pop方法。并实现了List接口。

对于shift / unshift,你可以参考@ Jon的答案。

但是,您可能需要关注的是ArrayList,arrayList 已同步。但是堆栈是。 (Vector的子类)。如果你有线程安全的要求,那么Stack可能比ArrayList更好。

答案 3 :(得分:1)

Underscore-java库包含方法push(values),pop(),shift()和unshift(values)。

代码示例:

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"]

答案 4 :(得分:1)

Jon的好答案。

尽管我很懒,而且我讨厌打字,所以我为所有其他和我一样的人创建了一个简单的剪切和粘贴示例。享受吧!

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]

    }

}