java howto ArrayList推,popup,移位和不移位

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

我被困在find类似于以下的ArrayList函数

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

最后一个是我现在工作(Android)最重要的。 在此感谢!

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

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

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

也许你想看看java.util.Stack类。 它有推,stream行的方法。 并实现了List接口。

对于移位/不移位,你可以参考@ Jon的答案。

然而,你可能想关心ArrayList的东西,arrayList是同步的。 但是Stack是。 (Vector的子类)。 如果你有线程安全的要求,Stack可能比ArrayList好。

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

代码示例:

 import com.github.underscore.$: List<String> strings = Arrays.asList("one", "two", " three"); List<String> newStrings = $.push(strings, "four", "five"); // ["one", " two", "three", " four", "five"] String newPopString = $.pop(strings).fst(); // " three" String newShiftString = $.shift(strings).fst(); // "one" List<String> newUnshiftStrings = $.unshift(strings, "four", "five"); // ["four", " five", "one", " two", "three"]