java的集合框架
为了解决数组工具处理数据效率低,不能动态调整,无法获取数组中实际储存数据等缺陷,我们要使用java集合框架,java提供了很多接口和类再java.until包中,具体关系如图所示.
从上图可知,java的集合类主要由Collection和Map接口派生而来,其中Collection中有两个常用的List和Set接口,所以通常说集合框架由Set,List和Map三大类接口构成.
1.1List接口
Collecton接口是最基本的集合接口,可以储存一组不唯一,无序的对象,List接口继承自Collection接口,是有序集合,用户可以通过索引访问List接口中的元素,类似于数组,List接口允许存放重复元素,也就是说List接口可以储存一组不唯一,有序的对象,List接口的常用实现类有ArrayList和LinkedList.
1.1.1ArrayList类
ArrayList类提供了很多方法用来操作数据,其常用方法如下图所示:
1.1.2 LinkedList 类
LinkedList类是List接口的链表实现类,它支持所有实现List接口可选列表的操作,并且允许元素是任何数据,包括null.LinkedList集合的优点是插入和删除元素时效率比较高.
LinkedList除了ArrayList类所包含的方法外还有一些特有方法,下面列举一些LinkedList特有的方法
方法 说明
void addFirst(object obj) 将指定元素插入到当前集合首部
void addLast(object obj) 将指定元素插入到当前集合尾部
Object getFirst() 获得当前集合的第一个元素
Object getLast() 获得当前集合的最后一个元素
Object removeFirst() 移除并返回当前集合的第一个元素
Object removeLast() 移除并返回当前集合的最后一个元素
1.2Set接口
Set接口是Collection接口的另一个常用子接口,Set接口描述的是一个比较简单的集合,不能有重复对象,如果输入相同对象则只能保存一个对象.Set接口常用的实现类有HashSet.
HashSet类动态储存数据
如果要在很多数据中寻找某个数据,Linked类就不考虑了,ArrayList类在不知道索引企鹅需要全部遍历的情况下效率也很低下,为此java集合框架提供了HashSet类.HashSet集合有以下特点:
1.集合内元素无序排列 2.集合非线程安全 3.允许集合的元素值为null
2.Map接口
Map接口储存一组成对的键(key)值(value)对象,提供key到value的映射,通过value来检索.Map接口中的key不要求有序但不允许重复,value同样不要求有序,允许重复
最常用的Map的实现类是HashMap,优点是查询效率高
3.Collections接口
Collections类是java提供的一个集合操作工具类,包含大量静态方法,需要注意的是Collections和Collection的区别,前者是集合的操作类后者是集合接口