项目场景:
提示:这里简述项目相关背景:
我们主要分两种情况进行考虑:
一、数组长度确定
二、数组长度不确定
问题描述
提示:问题简述:
在一个数组中增加新的元素
方法总结:
提示:解决方案如下:
一、若知道数组的确定长度,并且往数组中增加的数据是确定的,那么,我们可以直接定义一个新数组,并且指定新数组的长度,直接赋值即可。
示例代码:
@Test
public void arr(){
String[] arr1 = {"a","b","c"};
String[] arr2 = new String[arr1.length+2];
for (int i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i];
}
//直接赋值
arr2[arr1.length] = "d";
arr2[arr1.length+1] = "e";
//输出结果
System.out.println(Arrays.toString(arr2));
}
运行结果:
[a, b, c, d]
二、若知道数组的确定长度,并且往数组中增加的数据是确定的,那么,我们可以使用 arrayList 中的add() 方法,将新的数据增加到数组中。故,我们先需要将数组 转为 arrayList 。增加之后,我们再将 arrayList 转为 数组即可。
示例代码如下:
写法一:
@Test
public void arr(){
String[] arr1 = {"a","b","c"};
// 直接将 数组 转为 arrayList
List<String> list = new ArrayList<>(Arrays.asList(arr1));
// 加入新的元素
list.add(1,"d");
// 按照 合并时候的 list 大小定义一个新的 数组
String[] arr2 = new String[list.size()];
// arrayList 转为数组
list.toArray(arr2);
// 输出结果
System.out.println(Arrays.toString(arr2));
}
写法二:
@Test
public void arr(){
String[] arr1 = {"a","b","c"};
// arr 转为 arrayList
List<String> arrList = Arrays.asList(arr1);
//定义新的 list
List<String> list = new ArrayList<>();
list.addAll(arrList );
list.add(1,"d");
list.add(1,"e");
String[] arr2 = new String[list.size()];
list.toArray(arr2);
//运行结果
System.out.println(Arrays.toString(arr2));
}
运行结果:
[a, b, c,d]
三、若实际长度我们不确定,增加的元素我们也不确定,那么我们就无法指定数组的大小,或者 是 list 的长度,所以我们需要使用其它方式进行解决,下面我们使用到了 StringBuffer
示例代码:
List<SysDeptEntity> deptList = sysDeptService.list(new QueryWrapper<SysDeptEntity>().eq("type", 0).eq("parent_id", getCompanyId().intValue()));
if(deptList.size() > 0) {
//定义一个新的 list ,不指定长度
List<String> comIds = new ArrayList<>();
for (SysDeptEntity sysDept : deptList) {
comIds.add(sysDept.getDeptId().toString());
}
comIds.add(getCompanyId().toString());
//arraylist 转 字符串
StringBuffer resultStr = new StringBuffer(); // 利用StringBuffer将arraylist转为string
for (int i = 0; i < comIds.size(); i++) {
if(i < comIds.size()-1){
resultStr.append(comIds.get(i) + ",");
}else{
resultStr.append(comIds.get(i));
}
}
}
String comIdss=resultStr.toString();
System.out.println(comIdss);
运行结果:
1,2,3
注意:
1、append()方法在被选元素的结尾(仍然在内部)插入指定内容。
2、提示:如需在被选元素的开头插入内容,请使用prepend()方法。
3、提示:append()和appendTo()方法执行的任务相同。不同之处在于:内容的位置和选择器。
注:实际使用中应根据实际情况进行判断,并且要明确我们最终要 得到的 数据类型是什么。