集合框架的个人见解
什么是集合?
集合是存放对象的容器
集合和数组的区别:
集合:集合类存放于java.util包中,集合中存放的是对象的引用,长度可以发生改变,可在多数 情况下使用。 不能储存集本数据类型.若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用。
数组:可以存储有限个类型相同的变量的集合,把具有相同类型的若干元素按无序的形式组织起来的一种形式,数组的长度是固定的,不适合在元素的数量不确定的情况下使用。
对于集合类我们主要掌握的就是它的内部结构,以及遍历集合的迭代模式
List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口
Set下常用类有HashSet,LinkedHashSet,TreeSet
List下常用类有ArrayList,Vector,LinkedList
Map下常用类有Hashtable,LinkedHashMap,HashMap,TreeMap
Iterator:
Iterator:迭代器 它是Collection集合顶层的接口
包含的三个方法是:
Object next():返回迭代器刚越过的元素的引用,返回值是 Object,需要强制转换成自己需要的类型
boolean hasNext():判断容器内是否还有可供访问的元素
void remove():删除迭代器刚越过的元素
除了 map 系列的集合,我们都能通过迭代器来对集合中的元素进行遍历。
iterator(),返回一个Iterator(迭代器),用于遍历集合的所有元素。Iterator模式可以把访问逻辑从不同的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。
public static void main(String[] args) {
Collection collection=new ArrayList<>();//向上造型 创建对象
for (int i = 0; i < 50; i++) {//利用普通for循环添加元素
collection.add("菜花");
}
Iterator it = collection.iterator(); // 获得一个迭代器
while(it.hasNext()) {
Object obj = it.next(); // 得到下一个元素
System.out.println(obj);//输出50个菜花
}
}