集合框架
集合和数组的区别:
1.集合和数组都是容器
2.数组的长度是固定的,集合长度是可变的
3.数组可以储存基本数据类型,集合只能存储对象
4.数组中存储的数据类型是单一的,集合中可以存储任意类型的对象。
三大接口:
Collection:所有集合类的根接口
Map:映射接口,存放键值对
Iterator:遍历集合的迭代接口。
(java.util)
Collection:单列集合,三个子接口
(1.)List:有存储顺序,可重复
ArrayList:底层是数组实现,查找快,增删慢。(直接可以按照索引查找,但是 增删时需要牵扯到数组增容,以及拷贝元素)。
LinkedList:底层是链表实现,增删块,查找慢。
Vector:和ArrayList原理相同,但是线程安全,效率略低。
(2.)set:无顺序存储,不可重复,set中没有索引
HashSet:底层是哈希码表,基于HashMap实现。
TreeSet:底层是二叉树,元素无序不重复,并且实现了排序。
(3.)Queue:队列,实现了先进先出。
Map:键值对—Key值不允许重复,如果重复就覆盖了。
HashMap:Key值的hashmap和equals保证了元素的唯一性。
TreeMap:不仅保证key不重复,还可以对value数据进行排序。(必须实现Compareable接口,否则报错。)
HashTable:实现同步。
Iterator:迭代接口
集合的三种遍历方式:
(1.)for
(2.)foreach 迭代器
(3.)迭代器的方法:
获取到迭代器的时候,迭代器中有一个指针指向了集合中的第一个元素。
hasNext() :当前指针是否有指向元素,如果有返回true,否则返回false。
next():获取当前指针指向的元素并返回当前元素,然后指针向下移动一个单位