Java 如何在数组之间放置某些内容

Java 如何在数组之间放置某些内容,java,Java,我有一个数组: char[] arr = {'h', 'e', 'l', 'o'}; 我想在数组之间放置一些其他对象,比如: char[] desired = {'h', 'e', 'l', 'l', 'o'}; 因此,我在arr[2]='l'中保留了l,并在旧的l和o之间添加了新的l,但我如何在代码中做到这一点呢?数组有一个固定的长度,即在声明/赋值时指定的长度。虽然有一些方法适用于您的用例,包括创建一个新的数组,其中包含用于存储额外字符的额外索引,但我建议您查看ArrayListclas

我有一个数组:

char[] arr = {'h', 'e', 'l', 'o'};
我想在数组之间放置一些其他对象,比如:

char[] desired = {'h', 'e', 'l', 'l', 'o'};

因此,我在
arr[2]='l'
中保留了
l
,并在旧的
l
o
之间添加了新的
l
,但我如何在代码中做到这一点呢?

数组有一个固定的长度,即在声明/赋值时指定的长度。虽然有一些方法适用于您的用例,包括创建一个新的数组,其中包含用于存储额外字符的额外索引,但我建议您查看
ArrayList
class-

简而言之,
ArrayList
List
接口的可调整大小的数组实现。需要注意的一点是,
ArrayList
不允许存储基元值,因此在您的情况下,必须使用非基元
字符
包装而不是基元
char
类型来存储值。
ArrayList.add(index,element)
方法可用于在结构中的特定索引处插入特定元素-根据需要沿数组移动其他元素以容纳新元素

下面是一个基本示例,说明了原始问题的解决方案

//包含['h','e','l','o'的字符元素的新数组列表
List al=新的ArrayList(Arrays.asList('h','e','l','o');
系统输出打印项次(“原件:+al”);
加上(2,'l');//在索引2处,插入元素“l”
系统输出打印项次(“修改:+al);
输出:

Original: [h, e, l, o]
Modified: [h, e, l, l, o]

你试过什么吗?您要在哪个位置添加?您需要复制
索引
之前的所有字符,并将
索引
中的所有字符移位/复制一次。由于您的阵列具有固定的大小,您需要创建一个长度为
length+1
的新字符串。如果您不需要使用
StringBuffer
String#substring
,则可以使用它hand@GauravJeswani感谢您的帮助,我将使用左侧的
列表
界面,而不是
ArrayList
,并保留右侧的泛型空的(最佳实践)。@FaltFe感谢您提供的提示,阅读了相关内容,并将在将来采用此最佳实践-答案经过编辑以反映您的建议:)