1、一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度。
但有个可以改变大小的数组为ArrayList,即可以定义一个ArrayList数组,然后用add(element)方法往里添加元素即可,还可add(index,element)往指定下标处添加元素
2、思路为先把array转化为list,用list的add()方法添加元素,再把list转化为array。
但这儿会有一个陷阱盲区,在把array转化为list的过程中,使用的asList()方法会返回一个final的,固定长度的ArrayList类,并不是javautilArrayList,直接这样利用它进行add()或remove()是无效的。
那应该怎么做呢,在定义list的时候就直接对array进行转化
第三个方法思路为创建一个新数组,新数组的大小为旧数组大小+1,把旧数组里的元素copy一份进新数组,并把要添加的元素添加进新数组即可。
arraylist的元素是object类型,所以直接添加就可以了。
public class Test{
public static void Main(String[] args)
{
ArrayList arr = new ArrayList();
int[] dat = new int[10] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
arrAdd(dat);
int[] d = (int[]) arr[0];
for (int i = 0; i < dLength; i++)
ConsoleWrite(d[i] + " ");
ConsoleReadKey();
}
}ArrayList list=new ArrayList<List>();//声明一个泛型为List的ArrayList,调用ArrayList的addAll方法将现有数组或者List添加进该list即可你的ArrayList的Insert方法用法不对,Insert(3,xx)是在第3+1个列表项处添加一个元素xx,不能直接添加数组,必须用类似下面的方式将要添加的数组中的元素挨个添加进去:
foreach( int el in arr1 )
listInsert(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 )
listInsert(3+i++,el);你是想集合取出来放到数组,其实可以更简单,数组和集合之间是可以相互转换的。
List转换为Array可以这样处理:
ArrayList<String> list=new ArrayList<String>();
String[] strings = new String[listsize()];
listtoArray(strings);
类型可以换成你的数据类型。
数组转成List如下:
String[] s = {"a","b","c"};List list = javautilArraysasList(s);
同样的数据类型可以换成自己的数据类型首先取出styleid字段的值,假设是字符串String
styleid="a/b/c";
然后String[]
s
=
styleidsplit("/");
s就是字符串数组,s[0]="a";s[1]="b";s[3]="c"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)