说在前面 数组在使用前,长度就已固定,所以原数组长度是不能再改变了,基于此,提供如下两种方式,给数组添加数据。具体代码如下

方式一: 创建一个新数组,长度为原数组加1,然后将原数组数据添加到新数组,最后再添加需要的新数据

@Test

public void redd111(){

String[] s1 = {"aaa","bbb","ccc"};

String[] s2 = new String[s1.length+1];

for (int i = 0; i < s1.length; i++) {

s2[i] = s1[i];

}

s2[s1.length] = "ddd";

System.out.println(Arrays.toString(s2));

}

运行结果

[aaa, bbb, ccc, ddd]

方式二: 先把数组转化为list,将该list添加到一个新的ArrayList中,再使用新ArrayList的add()方法添加元素,最后把新ArrayList转化为数组。

@Test

public void redd222(){

String[] s1 = {"aaa","bbb","ccc"};

List tempList = Arrays.asList(s1);

List list = new ArrayList<>();

list.addAll(tempList);

list.add(1,"ddd");

String[] s2 = new String[list.size()];

list.toArray(s2);

System.out.println(Arrays.toString(s2));

}

也可以简化一下写法:

@Test

public void redd222(){

String[] s1 = {"aaa","bbb","ccc"};

List list = new ArrayList<>(Arrays.asList(s1));

list.add(1,"ddd");

String[] s2 = new String[list.size()];

list.toArray(s2);

System.out.println(Arrays.toString(s2));

}

运行结果

[aaa, ddd, bbb, ccc]

注意点: 使用Arrays.asList()方法将数组转为list时,该方法返回的是一个final的,固定长度的ArrayList类,他是Arrays的内部类,并不是java.util.ArrayList,所以不能直接使用它进行add操作哦,否则会报如下错误哦

异常信息:

java.lang.UnsupportedOperationException

at java.util.AbstractList.add(AbstractList.java:148)

相关阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: