我有一个接受可变参数字符串数组的方法
void count(long delta, String... tags);
对于大多数情况,我有一个预定义的标签数组
String[] tags = { "foo_tag:Foo",
"bar_tag:Bar",
"baz_tag:Baz"
};
并且每次调用"project_id:12345"
所以count的调用应该是这样的:
count(delta, "foo_tag:Foo", "bar_tag:Bar", "baz_tag:Baz", "project_id:12345");
我怎样才能简单地创建一个新数组,其中包含我现有的一个元素加上附加元素,而不是调用该方法?
类似于这个假设的 Arrays.append
方法:
count(delta, Arrays.append(tags, "project_id:12345"));
这是存储统计操作,不是业务逻辑,所以我希望这个操作越快越好。
目前,我有辅助方法 appendTag,但它对我来说并不优雅
private String[] appendTag(String[] tags, String s)
{
String[] result = new String[tags.length + 1];
System.arraycopy(tags, 0, result, 0, tags.length);
result[result.length-1] = s;
return result;
}
最佳答案
在 java 中,数组具有固定大小,因此不可能通过向数组添加新元素来扩展数组。
您需要创建一个更大的新数组并将第一个元素复制到其中,然后向其中添加新元素,但它还不是动态。
我的建议是使用 Collection
可能是 ArrayList 您将从它的内置方法中获益,例如 .add()
关于java - 从现有数组创建一个数组并添加额外的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44920321/