java集合类 set、list、map、queue使用场景梳理

java集合类 set、list、map、queue使用场景梳理

ID:13341268

大小:206.50 KB

页数:50页

时间:2018-07-22

java集合类 set、list、map、queue使用场景梳理_第1页
java集合类 set、list、map、queue使用场景梳理_第2页
java集合类 set、list、map、queue使用场景梳理_第3页
java集合类 set、list、map、queue使用场景梳理_第4页
java集合类 set、list、map、queue使用场景梳理_第5页
资源描述:

《java集合类 set、list、map、queue使用场景梳理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.Java集合类基本概念在编程中,常常需要集中存放多个数据。从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量。一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据(在编译时无法确定具体的数量),java的集合类就是一个很好的设计方案了。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所以的集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,java5还在java.util.concurrent包下提供了一些多线程支持的集合类。在学习Java中的集合类的AP

2、I、编程原理的时候,我们一定要明白,"集合"是一个很古老的数学概念,它远远早于Java的出现。从数学概念的角度来理解集合能帮助我们更好的理解编程中什么时候该使用什么类型的集合类。Java容器类类库的用途是"保存对象",并将其划分为两个不同的概念:1)Collection一组"对立"的元素,通常这些元素都服从某种规则  1.1)List必须保持元素特定的顺序  1.2)Set不能有重复元素  1.3)Queue保持一个队列(先进先出)的顺序2)Map一组成对的"键值对"对象Collection和Map的区别在于容器中每个位置保存的元素个数:1)Collection每个位置只能保存一个元素(

3、对象)2)Map保存的是"键值对",就像一个小型数据库。我们可以通过"键"找到该键对应的"值"2.Java集合类架构层次关系1.InterfaceIterable迭代器接口,这是Collection类的父接口。实现这个Iterable接口的对象允许使用foreach进行遍历,也就是说,所有的Collection集合对象都具有"foreach可遍历性"。这个Iterable接口只有一个方法:iterator()。它返回一个代表当前集合对象的泛型迭代器,用于之后的遍历操作1.1CollectionCollection是最基本的集合接口,一个Collection代表一组Object的集合

4、,这些Object被称作Collection的元素。Collection是一个接口,用以提供规范定义,不能被实例化使用1)SetSet集合类似于一个罐子,"丢进"Set集合里的多个对象之间没有明显的顺序。Set继承自Collection接口,不能包含有重复元素(记住,这是整个Set类层次的共有属性)。Set判断两个对象相同不是使用"=="运算符,而是根据equals方法。也就是说,我们在加入一个新元素的时候,如果这个新元素对象和Set中已有对象进行注意equals比较都返回false,  则Set就会接受这个新元素对象,否则拒绝。因为Set的这个制约,在使用Set集合的时候,应该注意两点

5、:1)为Set集合里的元素的实现类实现一个有效的equals(Object)方法、2)对Set的构造函数,传入的Collection参数不能包含重复的元素1.1)HashSetHashSet是Set接口的典型实现,HashSet使用HASH算法来存储集合中的元素,因此具有良好的存取和查找性能。当向HashSet集合中存入一个元素时,HashSet会调用该对象的hash    Code()方法来得到该对象的hashCode值,然后根据该HashCode值决定该对象在HashSet中的存储位置。值得主要的是,HashSet集合判断两个元素相等的标准是两个对象通过equals()方法比较相等,

6、并且两个对象的hashCode()方法的返回值相等1.1.1)LinkedHashSetLinkedHashSet集合也是根据元素的hashCode值来决定元素的存储位置,但和HashSet不同的是,它同时使用链表维护元素的次序,这样使得元素看起来是以插入的顺序保存的       。当遍历LinkedHashSet集合里的元素时,LinkedHashSet将会按元素的添加顺序来访问集合里的元素。LinkedHashSet需要维护元素的插入顺序,因此性能略低于HashSet的性能,但在迭代访问Set里的全部元素时(遍历)将有很好的性能(链表很适合进行遍历)1.2)SortedSet此接口主

7、要用于排序操作,即实现此接口的子类都属于排序的子类1.2.1)TreeSetTreeSet是SortedSet接口的实现类,TreeSet可以确保集合元素处于排序状态1.3)EnumSetEnumSet是一个专门为枚举类设计的集合类,EnumSet中所有元素都必须是指定枚举类型的枚举值,该枚举类型在创建EnumSet时显式、或隐式地指定。EnumSet的集合元素也是有序    的,它们以枚举值在Enum类内的定义顺序来决定集合元素的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。