一.Collection的体系结构
List: 最具体的子实现类ArrayList,LinkedList,Vector
1.基本功能:
(1)添加:boolean add(Object e):添加元素 E(Element)
(2)删除:void clear() 暴力删除(将集合的素有元素全部干掉)
boolean remove(Object o):从集合中删除指定的元素
(3)int size():获取集合的元素数
2.判断功能:
(1)boolean isEmpty():判断集合是否为空,为空元素,则返回true
boolean contains(Object o):判断集合中是否包含指定元素,包含则返回true
Collection的高级功能
boolean addAll(Collection c):添加一个集合中的所有元素
boolean containsAll(Collection c):包含一个集合中的所有元素
boolean removeAll(Collection c):删除集合中的所有元素, (删除一个算删除)(必须同时都被包含进去)public class Colle { public static void main(String[] args) { Collection c1 = new ArrayList(); c1.add("abc1"); c1.add("abc2"); c1.add("abc3"); c1.add("abc4"); Collection c2 = new ArrayList(); c2.add("abc1"); c2.add("abc4"); c2.add("abc5"); c2.add("abc6"); System.out.println(c1); System.out.println(c2); System.out.println(c1.removeAll(c2)); System.out.println(c1); } }
boolean retainAll(Collection c):A集合对B集合求交集,交集的元素是保存在A集合中, boolean的返回值意思是看A集合的元素如果有变化,返回true;没有变化,则返回false
Object[] toArray():将集合转换成了对象数组
二.Collection的迭代器(Iterator)
Iterator接口: boolean hasNext():判断迭代器中是否存在下一个元素
Object next(): 获取下一个可以遍历的元素
public class CollectionTest {
public static void main(String[] args) {
//创建集合对象
Collection c = new ArrayList() ; //List接口的子实现类 (重复元素)
//添加元素
c.add("hello") ;
c.add("world") ;
c.add("javaee") ;
while(it.hasNext()){
Object obj = it.next();
//获取的元素同时,还要获取当前存储元素的长度 ---->String类型 length()
String str = (String) obj;//向下转型
System.out.println(str+"----"+str.length());
}
}
}
jdk5以后新特性:泛型<E/T>
泛型的格式:<引用数据类型>
集合类型<引用数据类型> 集合对象名 = new 子实现类<引用数据类型>() ;
泛型的好处:
1)将运行时期异常提前了编译时期
2)避免了强制类型转换
3)提高了程序安全性
public class GenericDemo {
public static void main(String[] args) {
//创建Collection集合对象
Collection<String> c = new ArrayList<String>() ;
c.add("hello") ;
c.add("高圆圆") ;
c.add("你好吗") ;
//获取迭代器Iteratr<E>是集合中存储的泛型是一致的
Iterator<String> it = c.iterator();
while(it.hasNext()){
//获取String字符串的同时,还要获取长度
//避免了强制类型转换
String str = it.next();
System.out.println(str+"---"+str.length());
}
}
}