Collection是最顶层的接口,它的三个子接口:
1.List
2.Set
3.Queue
ArrayList就是List的一个实现类
1.List的性质:
public class ArrayListDemo {
public static void main(String[] args) {
//创建ArrayList实例
List<Integer> arrayList=new ArrayList<>();
arrayList.add(2);
arrayList.add(5);
arrayList.add(6);
arrayList.add(null);
arrayList.add(5);
for(int i=0;i<arrayList.size();i++){
System.out.print(arrayList.get(i)+" ");
}
}
}
上述代码分别往arayList种添加了2,5,6,null,5这五个元素
运行结果:
2 5 6 null 5
Process finished with exit code 0
可以看出,List具有以下三条性质
1.元素插入有序
2.可插入null值
3.元素可重复
那么set和Queue的性质
Set:
1.元素插入无序
2.元素不可重复
3.可插入null(视情况而定)
Queue:
1.元素插入无序
2.元素不可重复
3.不可插入null
2.ArrayList常见用法
-
//删除元素
-
//E remove(int index) arrayList.remove(2);//删除2号下标的元素
-
// boolean remove(Object o) arrayList.remove(Integer.valueOf(55));//删除数组中值为55的对象
-
//修改元素
-
// E set(int index, E element) arrayList.set(3,10); // 把3号下标位置的元素值修改为10.并且把3号位置原有数值返回
-
//统计集合元素个数 int size()
-
//查询元素 E get(int index)
-
for(int i=0;i<arrayList.size();i++){ System.out.println(arrayList.get(i)); }
ArrayList的其他用法
- arrayList.removeAll; (删除两个集合里面共有的元素): arrayList1.removeAll(arrayList2);
- arrayList.contain(); 在当前集合中是否包含指定的元素 ,存在则返回true,不存在返回 false
- arrayList.retainAll();
arrayList1.retainAll(arrayList2);
(arrayList1中存放两个集合里面共有的元素 情况不同:a中有集合b,b中有集合a) - arrayList.toArray() 将集合转化为数组
Integer[] array = (Integer[]) a.toArray();
已知 a集合:1 3 4 6,b集合:2 3 6 7。
求:
* //a与b的交集:
* //a与b的差集: b与a的差集:
* //a与b的补集:
* //a与b的全集:
//a与b的交集
a.retainAll(b);
for(int i=0;i<a.size();i++){
System.out.print(a.get(i)+" ");
}
//打印结果3,4
//a与b的差集
a.removeAll(b);
for(int i=0;i<a.size();i++){
System.out.print(a.get(i)+" ");
}
//打印结果1,6
//b与a的差集
b.removeAll(a);
for(int i=0;i<b.size();i++){
System.out.print(b.get(i)+" ");
}
//打印结果2,7
//a与b的补集
ArrayList<Integer> c=new ArrayList(a);//c中元素和a相同
a.addAll(b);//把b中的元素加到a中
c.retainAll(b);//c中为a与b中相交的数字
for(int i=0;i<c.size();i++){
a.remove(Integer.valueOf(c.get(i)));
}//删除重复的数据
//注:不能使用a.removeAll(c);这样会把重复的数据全部删掉,变成1 2 6 7
for(int i=0;i<a.size();i++){
System.out.print(a.get(i)+" ");
}