1、一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度。
但有个可以改变大小的数组为ArrayList,即可以定义一个ArrayList数组,然后用add(element)方法往里添加元素即可,还可add(index,element)往指定下标处添加元素
2、思路为先把array转化为list,用list的add()方法添加元素,再把list转化为array。
但这儿会有一个陷阱盲区,在把array转化为list的过程中,使用的asList()方法会返回一个final的,固定长度的ArrayList类,并不是java.util.ArrayList,直接这样利用它进行add()或remove()是无效的。
那应该怎么做呢,在定义list的时候就直接对array进行转化
第三个方法思路为创建一个新数组,新数组的大小为旧数组大小+1,把旧数组里的元素copy一份进新数组,并把要添加的元素添加进新数组即可。
你的ArrayList的Insert方法用法不对,Insert(3,xx)是在第3+1个列表项处添加一个元素xx,不能直接添加数组,必须用类似下面的方式将要添加的数组中的元素挨个添加进去:foreach( int el in arr1 )
list.Insert(3,el)
要注意这样会把arr1里的所有元素倒序地插入list里。因为在foreach循环里从arr1的第一个元素开始每次插一个元素到位置3,这样,在第一次循环中将arr1[0]插入到位置3、第二次是将arr1[1]插到位置3(排在了第一次插入的arr1[0]之前)……所以foreach每一次循环都会把arr1的下一个元素插在上一次刚刚插入的元素之前。于是你会看到arr1是被倒序地插入的。
要顺序插入,可以用个辅助变量i:
int i=0
foreach( int el in arr1 )
list.Insert(3+i++,el)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)