向数组里添加一个元素怎么添加,一般数组是不能添加元素的,因为数组在初始化时就已定好长度了,不能改变长度。
比如:
String[] str = new String[5];
System.out.println(Arrays.toString(str));
String[] str2 = new String[]{"a", "b"};
System.out.println(Arrays.toString(str2));
String[] str3 = {"c", "d"};
System.out.println(Arrays.toString(str3));
第一种方法:思路为创建一个新数组,新数组的大小为旧数组大小+1,把旧数组里的元素copy一份进新数组,并把要添加的元素添加进新数组即可。
String[] datecolumn = {"Mon", "Tue", "Wed"};
/**
* 重新创建一个新的数组,需要添加多少个元素,就在原来的数组长度的基础上加几
*/
System.out.println(datecolumn.length);
String[] newColume = new String[datecolumn.length + 1];
for (int i = 0; i < datecolumn.length; i++) {
newColume[i]=datecolumn[i];
}
newColume[datecolumn.length]="Thu";
System.out.println(Arrays.toString(newColume));
第二种方法:可以改变大小的数组为ArrayList,即可以定义一个ArrayList数组,然后用add(element)方法往里添加元素即可,还可add(index,element)往指定下标处添加元素;
List<String> datelist = new ArrayList<String>();
datelist.add("Mon");
datelist.add("Tue");
datelist.add("Wed");
//因为数组下标是从0开始,这里add的index为2即为第三个元素
datelist.add(2, "Thu");
datelist.add(1, "Fri");
System.out.println(datelist);
Web值对应的index就成了3
第三种方法:思路为先把array转化为list,用list的add()方法添加元素,再把list转化为array。但这儿会有一个陷阱盲区,在把array转化为list的过程中,使用的asList()方法会返回一个final的,固定长度的ArrayList类,并不是java.util.ArrayList,直接这样利用它进行add()或remove()是无效的。
//1.已有的数组datecolumn和list集合
String[] datecolumn = {"Mon", "Tue", "Wed"};
List<String> list = new ArrayList<>();
list.add("Thu");
list.add("Fri");
list.add("Sat");
list.add("Sun");
//2.数组和集合add到titleList中
List<String> titleList = new ArrayList<String>();
//将datecolum数组转换list并add到titleList中
titleList.addAll(Arrays.asList(datecolumn));
//将list添加到titleList中
titleList.addAll(list);
//3.titleList集合转换title数组
String[] title = titleList.toArray(new String[titleList.size()]);
//4.遍历title数组
for (String string : title) {
System.out.println(string);
}