0

我想在数组顶部添加项目?

我怎样才能做到这一点?

数组中有两个项目。我想在数组顶部添加项目。

result1 = new String[result.length+1];

            for(int i=result.length;i==0;i--)
        {
            if(i==0)
            {
               result1[0]="Latest";

            }
            result1[i]=result[i-1];

        }   
4

5 回答 5

3

要回答您的问题:您需要

  1. 创建一个大小 = 旧长度 + 1 的新数组。
  2. 将旧数组的内容复制到新数组中,
  3. 插入"latest"新数组:

像这样:

String[] result = { "a", "b", "c" };
String[] tmp = new String[result.length+1];

System.arraycopy(result, 0, tmp, 1, result.length);
tmp[0] = "latest";
result = tmp;

但是,我鼓励您考虑使用List例如,ArrayList在这种情况下,您可以将其表示为

result.add(0, "latest");
于 2012-05-11T14:28:52.030 回答
0

你不能:一个数组有一个固定的长度。

如果您想拥有可变大小的“数组”,请使用ArrayList

例子:

ArrayList<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.set(0, "new a");
for (String s: list) {
    System.out(s);
}
于 2012-05-11T14:26:59.683 回答
0

但是您可以使用 ArrayList 和 add(int index, E object)功能,您可以在任何地方添加项目。您可以轻松地将 ArrayList 转换为 array[]

于 2012-05-11T14:29:00.580 回答
0

使用作为 LIFO(后进先出)工作的堆栈,因此每当您弹出(读取)时,您将获得最新(在顶部)推送的项目

这是使用数组的 Java 代码参考:http ://wiki.answers.com/Q/Implementing_stack_operation_using_array_representation_with_java_program

于 2012-05-11T14:29:05.750 回答
0

您的解决方案的一个问题是,当i == 0您将值设置为Latest但在 result1[i]=result[i-1];

尝试

if(i==0) {
     result1[0]="Latest";
}
else {
     result1[i]=result[i-1];
}
于 2012-05-11T14:31:50.210 回答