java ArrayList类, 集合 , Collection是接口

集合框架(集合的由来及集合继承体系图)


* A:集合的由来
* 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少


* B:数组和集合的区别


* 区别1 :
* 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值
* 集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象


* 区别2:
* 数组长度是固定的,不能自动增长
* 集合的长度的是可变的,可以根据元素的增加而增长


* C:数组和集合什么时候用
* 1,如果元素个数是固定的推荐用数组
* 2,如果元素个数不是固定的推荐用集合


* D:集合继承体系图

集合框架(Collection集合的基本功能测试)
* A:案例演示
*
基本功能演示

boolean add(E e)
boolean remove(Object o)
void clear()
boolean contains(Object o)
boolean isEmpty()
int size()



 集合框架(集合的遍历之集合转数组遍历)
* A:集合的遍历
* 其实就是依次获取集合中的每一个元素。
* B:案例演示
* 把集合转成数组,可以实现集合的遍历
* toArray()
*

Collection coll = new ArrayList();
coll.add(new Student("张三",23)); //Object obj = new Student("张三",23);
coll.add(new Student("李四",24));
coll.add(new Student("王五",25));
coll.add(new Student("赵六",26));

Object[] arr = coll.toArray(); //将集合转换成数组    
for (int i = 0; i < arr.length; i++) {
Student s = (Student)arr[i]; //强转成Student       才能访问student特有的方法   向下转型
System.out.println(s.getName() + "," + s.getAge());   
}

集合框架(Collection集合的带All功能测试)
* A:案例演示
*
带All的功能演示


有两个集合    操作两个集合
boolean addAll(Collection c)  //将集合A加入集合B中
boolean removeAll(Collection c)  
boolean containsAll(Collection c)    //判断调用的集合是否包含传入的集合
boolean retainAll(Collection c)     //取交集

Collection c1 = new ArrayList();
c1.add("a");
c1.add("b");
c1.add("c");
c1.add("d");

Collection c2 = new ArrayList();
c2.add("a");
c2.add("b");
c2.add("c");
c2.add("d");
c2.add("e");
c2.add("f");

//取交集,如果调用的集合改变就返回true,如果调用的集合不变就返回false
boolean b = c1.retainAll(c2); //取交集
System.out.println(b);
System.out.println(c1);

原文地址:https://www.cnblogs.com/yimian/p/6511460.html