Java中是否有一种方法可以在一个语句中为数组分配多个值 那么以后你仍然可以追加到同一个数组中的其他值吗?
e.g。已经定义了长度为4的String数组
String[] kids = new String[4];
我想在一个语句中为数组分配多个值(例如2个值);也许是接近数组init的东西
kids = {"X", "Y"};
或数组重新定义
kids = new String[] {"X", "Y"};
但是如果没有丢失初始数组,我将需要添加其他值,例如。
if(newKid) {
kids[3] = "Z";
}
或者没有办法实现这一点,必须逐个分配值
kids[0] = "X";
kids[1] = "Y";
if(newKid) {
kids[3] = "Z";
}
答案 0 :(得分:1)
您需要将包含初始化值的数组复制到更大的数组中:
String[] kids = Arrays.copyOf(new String[]{ "x", "y" }, 4);
kids[2] = "z";
替代复制解决方案:
String[] kids = new String[4];
System.arraycopy(new String[]{"x", "y"}, 0, kids, 0, 2);
kids[2] = "z";
或者,您可以将空字符串作为占位符:
String[] test ={ "x", "y", "", "" };
test[2] = "z";
或者您可以使用List<String>
:
List<String> kids = new ArrayList<>(4);
Collections.addAll(kids, "x", "y");
kids.add("z");
替代List<String>
解决方案:
List<String> kids = new ArrayList<>(Arrays.asList("x", "y"));
kids.add("z");
答案 1 :(得分:0)
这里解决了 Resize an Array while keeping current elements in Java?
顺便说一句,您可以使用列表,因此您不需要调整大小
答案 2 :(得分:0)
您可以执行以下操作:
String[] kids = new String[4];
System.arraycopy(new String[] {"X", "Y"}, 0, kids, 0, 2);