我想在数组顶部添加项目吗?
我怎样才能实现这一目标?
数组中有两个项目。我想在数组顶部添加项目。
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];
}
答案 0 :(得分: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");
答案 1 :(得分: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);
}
答案 2 :(得分:0)
但您可以使用ArrayList和add(int index, E object)
功能,您可以在任何地方添加项目。你可以轻松地将ArrayList转换为array []
答案 3 :(得分:0)
使用堆栈作为LIFO(后进先出),因此每当您弹出(读取)时,您将获得最新的(在顶部)推送项目
以下是使用Array:http://wiki.answers.com/Q/Implementing_stack_operation_using_array_representation_with_java_program
的Java代码参考答案 4 :(得分:0)
您的解决方案的一个问题是,在i == 0
时,您将值设置为Latest
,但在使用result1[i]=result[i-1];
尝试
if(i==0) {
result1[0]="Latest";
}
else {
result1[i]=result[i-1];
}