说在前面
数组在使用前,长度就已固定,所以原数组长度是不能再改变了,基于此,提供如下两种方式,给数组添加数据。具体代码如下
方式一:
创建一个新数组,长度为原数组加1,然后将原数组数据添加到新数组,最后再添加需要的新数据
1
2
3
4
5
6
7
8
9
10
|
@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)); } |
运行结果
1
|
[aaa, bbb, ccc, ddd] |
方式二:
先把数组转化为list,将该list添加到一个新的ArrayList中,再使用新ArrayList的add()方法添加元素,最后把新ArrayList转化为数组。
1
2
3
4
5
6
7
8
9
10
11
|
@Test public void redd222(){ String[] s1 = { "aaa" , "bbb" , "ccc" }; List<String> tempList = Arrays.asList(s1); List<String> 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)); } |
也可以简化一下写法:
1
2
3
4
5
6
7
8
9
|
@Test public void redd222(){ String[] s1 = { "aaa" , "bbb" , "ccc" }; List<String> 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)); } |
运行结果
1
|
[aaa, ddd, bbb, ccc] |
注意点:
使用Arrays.asList()方法将数组转为list时,该方法返回的是一个final的,固定长度的ArrayList类,他是Arrays的内部类,并不是java.util.ArrayList,所以不能直接使用它进行add操作哦,否则会报如下错误哦
异常信息:
1
2
|
java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java: 148 ) |
到此这篇关于Java数组添加元素的两种方法的文章就介绍到这了,更多相关Java数组添加元素内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/weixin_43860634/article/details/129750794