相当于push()或pop()的数组?

我想添加,删除和引用我在我的主要Java文件中创build的数组项目,但我无法找出正确的语法。 在动作脚本他们push()和pop()添加和删除数组中的项目,有没有在android中的等效?

在Java中,数组具有固定大小(初始化后),这意味着您不能添加或删除数组中的项目。

int[] i = new int[10]; 

上面的代码片段表示整数数组的长度为10.不可能添加第十一个整数,而不需要将引用重新分配给新的数组,如下所示:

 int[] i = new int[11]; 

在Java中,java.util包包含了各种数据结构,可以处理从类似数组的集合中添加和删除项目。 经典的数据结构Stack具有push和pop的方法。

对于那些没有时间重构代码来replaceArray(例如ArrayList )的ArrayList ,还有一个select。 与Collection不同,数组的长度不能改变,但是数组可以被replace,如下所示:

 array = push(array, item); 

缺点是这样的

  • 整个数组必须在每次推送时被复制
  • 原始数组Object不会更改,所以您必须根据需要更新variables。

这里是Stringpush方法:
(你可以创build多个push方法,一个用于String ,一个用于int等)

 private static String[] push(String[] array, String push) { String[] longer = new String[array.length + 1]; for (int i = 0; i < array.length; i++) longer[i] = array[i]; longer[array.length] = push; return longer; } 

这种方法更高效,更短,更难以阅读:

 private static String[] push(String[] array, String push) { String[] longer = new String[array.length + 1]; System.arraycopy(array, 0, longer, 0, array.length); longer[array.length] = push; return longer; } 

你可以使用LinkedList。 它有方法偷看,投票和提供。

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

代码示例:

 import com.github.underscore.lodash.$: 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"]