java类集框架
java类集框架
java 的类集框架是对一些典型的数据结构的简单封装,对外提供方法。不用关注代码的底层实现,使代码专注于业务的实现。(java.util包中的一些类和接口.)
类集框架三个核心的接口:
1.collection<E>(单值存放最大接口) :
2.map<K,V>(键值对存储最大接口):
3.Iterator<E>(通用的输出接口,主要是对集合的迭代遍历):ListIterator 它是Iterator接口的一个子接口,可以向前向后遍历List,而Iterator只能向后遍历
详解:List (元素放入有序,允许重复元素,可以使用for循环遍历,也可用迭代遍历)
list集合遍历
ArrayList<E>:底层由数组实现,非线程安全,效率相对Vector高,元素访问速度快,插入删除元素效率慢;
Vector<E>:底层由数组实现,是基于线程安全,效率相对ArrayList低。
LinkedList<E>:底层有链表结构,线程不安全,元素访问速度慢,插入删除元素快。
Set (元素放入无序,但元素在set中的位置是有它的hashCode值决定。不允许重复元素,只能迭代遍历)
HashSet<E>:线程不安全,按照哈希算法来存取集合中的对象存取速度快,利用了equals()和hashCode()方法实现元素不重复
TreeSet<E>:线程不安全 ,可对元素进行排序,底层由平衡二叉树实现;通过Comparable<E>接口中的compareTo或者Comparator<E>接口中的compareTo方法来保证元素的唯一性,存入的元素不会抛出ClassCastException
1.实现Comparable<E>接口
重写compareTo方法
2.实现Comparator<E>接口
重写compare方法
LinkedHashSet<E>:具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。
Map<K,V>(元素按键值对存储,无放入顺序 ,map中不能包含相同key,每个key只能映射一个value)
HashMap<K,V>:线程不安全的,速度快,底层是哈希表结构 支持null值
Hashtable<K,V>:线程安全,效率低,底层是哈希表结构,不支持null;
map遍历
Properties:用于配置文件的定义和操作,使用频率高,键和值都是字符串是集合中可以和IO技术相结合的对象
TreeMap<K,V>:可以用来对map集合中的键进行排序,基于红黑树数据结构的实现。
LinkeHashMap<K,V>:保证数据可以保持插入顺序,存入顺序和取出顺序一至