赞
踩
集合是javaAPI中提供的一种容器工具,可以存储多个数据。
集合框架的三个要素:接口、实现类、数据结构。
集合和数组的区别:
1、数组的长度是固定的,集合的长度是可变的;
2、数组中存储的是同一类型的元素,集合中存储的数据可以是不同类型的;
3、数组中可以存放基本数据类型和引用类型,聚合只能存放引用类型;
集合主要分为Collection和Map。
Collection接口是单列集合类的父接口,Collection有两个重要的子接口:List和Set。
List接口是Collection接口的子接口,list独有的一些特点:
(1)list是有序的集合;
(2)list是带索引的集合;
(3)list是可以存放重复数据的集合。
list常用的实现类:ArrayList、LinkedList,Vector。
ArrayList底层的数据结构是数组,特点是查找速度快;
Vector底层的数据结构也是数组,但是是synchronized加锁的,所以安全性很高;
LinkedList底层的数据结构是双向链表,特点是增删速度快。
Set接口也是Collection接口的子接口,set独有的一些特点:
(1)set是无序的集合;
(2)set是不带下标索引的集合;
(3)set是不能存放重复数据的集合。
Set常用的实现类:HashSet、TreeSet
HashSet的实现主要依赖于HashMap;
HashSet中存储的元素之所以无序,是因为元素在集合中的位置是通过对象的哈希值来确定的,HashSet中的数据不可重复是靠对象的hashCode和equals方法来判断对象是否重复的。
TreeSet可以将我们存进去的数据进行排序,排序种类:自然排序(实现了Comparable接口)、比较器排序(HashSet的一个重载构造器中可以接收比较器对象)。
Map集合是双列集合,存储数据时,需要存储一对数据。
1、key值必须是唯一的,value值是允许重复的;
2、key和value是映射关系,一个key对应一个value值;
3、在Map中,通过唯一的key值可以很快找到对应的value值。
四个Map的实现类:
1、HashMap:存储数据采用哈希表结构,元素存储顺序不能保证一致,需要保证键值的唯一;
2、HashTable:和List中的Vector相似,线程安全,不允许键和值为null;
3、TreeMap:支持键排序;
4、LinkedHashMap:HashMap的子类,数据结构:哈希表+链表,需要保证元素的存取顺序一致(存入顺序就是取出顺序)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。