java框架快速预览
写在前面:这篇文章不是一篇详细介绍java框架的文章,只是我在看了一些资料之后,对java框架进行一个大致的介绍,看完这篇文章,至少就能够说出java框架到底是个啥
1.两大基类
两大基类Collection与Map
在集合框架的类继承体系中,最顶层有两个接口,Collection与Map.
说的通俗一点就是,java框架分两类,一个叫collection,翻译过来就是集合,这个概念比较类似于高中数学中的集合;另一个叫map,翻译过来就是映射。二者的区别在于Collection表示一组纯数据Map表示一组key-value对(什么叫key-value对呢?就是相当于身份证号码,身份证号码对应一个人,身份证号码就是key,这个人的相关信息就是value)
2.Collection具体介绍
由上图可以看到,Collection下面主要分为三大类,Set,List,Queue.
三者的介绍如下:
* Set表示不允许有重复元素的集合
* List表示允许有重复元素的集合
* Queue JDK1.5新增,与上面两个集合类主要是的区分在于Queue主要用于存储数据,而不是处理数据。
再补充介绍一下上面的几个比较重要的子类(选择性看)
a. Arraylist:arraylist的实质就是一个会自动增长的数组。它是用封装的数组来实现的List接口,底层用数组实现。可以添加重复元素,也可以加载不同类型的数据。
b. Add()方法是往 尾部 添加元素,不能中间是空的然后插进去。然后
Add(INDEX,ODJECT),这个就是插入到指定位置,同样不能中间有空的。查询快,增删慢。
c. LinkedList 适用于增删动作比较频繁,查询少。底层是双向循环链表。
d. Hashset 即散列表,当向集合中存储对象时,先生成哈希码。如果生成的哈希码与已有对象的哈希码相同,则调用equals方法对两个对象进行比较,如果哈希码不相等,则根据哈希码在集合中寻找相应的位置来存储对象。
Hashset的原则:一定要让equals()相等的对象返回相同的hashcode,equals()不等的对象返回不同的hashcode.尽量让对象的hashcode值随机散列,即平均散列。
注意!要让equals和hashcode两个方法同时覆盖,才能在hashset中过滤掉相等的对象。
e. 在要排序的时候才使用TreeSet类(存储效率比较低)。HashSet的存储效率比较高,在需要为HashSet的对象排序时,就可以吧HashSet中的元素放入TreeSet。
3.Map具体介绍
Map介绍两个点
a.
Map并不是一个真正意义上的集合,但是这个接口提供了三种“集合视角”,使得可以像操作集合一样操作它们,具体如下:把map的内容看作key的集合;把map的内容看作value的集合;把map的内容看作key-value映射的集合
b.在map中,如果经常插入,删除和定为元素,最好用HashMap;如果经常按顺序遍历健,那么TreeMap会更好。实际应用中会根据集合大小,先把元素添加到Hashmap,再把这种映射转换成一个用于有序健遍历的treemap.
补充知识点
1.迭代器,简单理解就是用来操作框架元素的一个类
迭代器使用代码:
ListIterator <Student>lit= list.listIterator(list.size());
while(lit.hasPrevious()){
System.out.println(lit.previous());
}
2.比较器(Comparable接口)
此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。必须写compareTo方法,小于返回负数。
插入有序 set 的所有元素都 必须实现 Comparable 接口(或者被指定的比较器所接受)。