Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等. 发现一个特点,…
在介绍集合之前先说一下数组,正如我们所知,数组是某一类型数据的集合,强调的是数据,而且必须单一:集合框架的不同之处在于存储的数据类型没有任何限制,既可以存储基本数据类型(会自动提升为相应的包装类)也可以存储引用数据类型比如对象,集合框架更强大之处在于可以同时存储任意类型数据,这是数据无法做到的,另一方面,数组长度是固定的,但是实际生活中需求的容器大都是不确定的,这就需要一个可变长度的容器,而集合框架刚好弥补了数组容量固定的缺陷,这也是集合框架另一个特点:另一个不同之处就是存储方式的区别,数组数据…
一.集合框架 对于不知道存储数量和更复杂的方式存储对象用集合框架. 其中有几个常用的接口和实现类:Collection父接口.List接口,Set接口,Map接口, ArrayList实现类.LinkedList实现类.hashSet实现类.hashMap实现类 Collection集合框架的父接口,该接口存储的是一组不唯一,无序的对象. Collection父接口下有两个子接口: List接口:存储的数据是 不唯一的.有序的 Set接口 : 存储的数据是惟一的.无序的 List接口下也有两个实…
写在前面的话,这篇文章在昨天就写好了,今天打开的时候一不小心将第二天的文章粘贴到了这篇文章,很不幸的是除了标题之外依然面目全非,今天带着沉痛的心情再来写这篇文章! 上篇文章介绍了Collection体系以及List相关的知识,这篇文章将介绍Collection中的另一个分支——Set. Set      Set中存放的元素无序,不可重复.取出方式只能说迭代器. Set体系   ——| Set 子接口,特点在于元素无序,元素不可重复         ——| HashSet:底层数据结构是哈希表,是…
前两篇文章中介绍了Collection框架,今天来介绍一下Map集合,并用综合事例来演示. Map<K,V> Map<K,V>:Map存储的是键值对形式的元素,它的每一个元素,都是由键和值两个元素组成,键是不能有重复的,值是可以重复的,每一个键唯一指向一个值. Map体系 Map ——|hashtable: 底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.效率低,已被HashMap替代 ——|HashMap: 底层是哈希表数据结构,允许使用 null 值和…
ArrayList 和 和 Vector 的区别 从代码的最终的操作形式上可以发现,代码的输出结果与之前是一样的,而且没有区别,但是两者的区别还在于其内部的组成上. No. 区别点 Vector Vector 1 推出时间 DK 1.2 之后 JDK 1.0 的时候推出 2 线程处理 ArrayList 采用异步处理 采用同步处理 3 性能 速度较快  速度较慢 4 安全性 非线程安全性的操作 线程安全性的操作 5 输出 由于都是 List 接口的子类,所以都可以依靠 size()和 get()…
为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 数组和集合类同是容器,有何不同? 数组虽然也可以存储对象,但长度是固定的,集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象 集合类的特点 集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象. collection 中有两个常见的接口,如一个是 List 另一个是Set List中有ArrayList,LinkedList,V…
Java中的集合从类的继承和接口的实现结构来说,可以分为两大类: 1 继承自Collection接口,包含List.Set和Queue等接口和实现类. 2 继承自Map接口,主要包含哈希表相关的集合类. 第一类 Collection接口继承和实现结构图如下: 图中的绿色的虚线代表实现,绿色实线代表接口之间的继承,蓝色实线代表类之间的继承,下同. List 常用的是ArrayList和LinkedList.ArrayList通过数组实现,随机访问比较快,增删操作比较慢.而LinkedList通过链…
一.JDK中ArrayList是如何实现的 1.先看下ArrayList从上而下的层次图: 说明: 从图中可以看出,ArrayList只是最下层的实现类,集合的规则和扩展都是AbstractList.List.Collection等上层的接口所设定的,而ArrayList实现或继承了上层的规则,然后重新或扩展来处理集合中的数据. 2.看看接口:Iterable<E>中都定义了那些规则? JDK1.8中的源码: package java.lang; import java.util.Iterat…
1.List 和 Set 的区别 2.HashSet 是如何保证不重复的 3.HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)? 4.HashMap 的扩容过程 5.HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的? 6.final finally finalize 7.强引用 .软引用. 弱引用.虚引用 8.Java反射 9.Arrays.sort 实现原理和 Collection 实现原理 10.LinkedHashM…