文档详情

Java集合框架之Collection实例解析讲义.docx

发布:2017-02-09约2.56万字共41页下载文档
文本预览下载声明
Java集合框架之Collection实例解析1)集合的由来?Java是面向对象语言,操作很多对象,必要时需存储对象,常见容器(数组和StringBuffer或StringBuilder),而数组的长度固定,所以不适合做变化的需求,而StringBuffer(或StringBuilder)存储的是字符串,皆不符合要求。因此集合就应运而生了。2)集合和数组的区别?1:长度限制之别 - 数组长度是固定不变的 - 集合的大小是可变的2:可以存储的类型之别 - 一个数组存储的元素可以是基本类型,也可以是引用类型,且只能存储同一种类型的元素 - 一个集合存储的元素只能是引用类型,但集合可以存储不同类型的元素(但集合一般存储同一种类型)3)java集合框架初窥?图片来源于网络。类已经很全了,不用赘画了。1、Collection之继承体系下面列出了常用的Collection集合的继承关系。Collection |-----List 有序(存储顺序和取出顺序一致),可重复 |----ArrayList ,线程不安全,底层使用数组实现,查询快,增删慢。效率高。每次容量不足时,自增长度的一半,如下源码可知 int newCapacity = oldCapacity + (oldCapacity 1); |----LinkedList ,线程不安全,底层使用链表实现,查询慢,增删快。效率高 |----Vector ,线程安全,底层使用数组实现,查询快,增删慢。效率低每次容量不足时,默认自增长度的一倍(如果不指定增量的话),如下源码可知 int newCapacity = oldCapacity + ((capacityIncrement 0) ? capacityIncrement : oldCapacity); |-----Set 元素唯一一个不包含重复元素的 collection。更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。 |--HashSet 底层是由HashMap实现的,通过对象的hashCode方法与equals方法来保证插入元素的唯一性,无序(存储顺序和取出顺序不一致),。 |--LinkedHashSet 底层数据结构由哈希表和链表组成。哈希表保证元素的唯一性,链表保证元素有序。(存储和取出是一致) |--TreeSet 基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。元素唯一。2、Collection泛型接口方法摘要boolean add(E e) 确保此 collection 包含指定的元素(可选操作)。boolean addAll(Collection? extends E c) 将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。 void clear() 移除此 collection 中的所有元素(可选操作)。boolean contains(Object o) 如果此 collection 包含指定的元素,则返回true。boolean containsAll(Collection? c) 如果此 collection 包含指定 collection 中的所有元素,则返回true。booleanequals(Object o) 比较此 collection 与指定对象是否相等。 int hashCode() 返回此 collection 的哈希码值。boolean isEmpty() 如果此 collection 不包含元素,则返回true。 IteratorE iterator() 返回在此 collection 的元素上进行迭代的迭代器。boolean remove(Object o) 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。boolean removeAll(Collection? c) 移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。boolean retainAll(Collection? c) 仅保留此 collection 中那些也包含在指定 collection 的元素
显示全部
相似文档