前面讨论完了HashMap和HashTable的源码,这一节我们来讨论一下TreeMap。先从整体上把握TreeMap,然后分析其源码,深入剖析TreeMap的实现。
1. TreeMap简介
TreeMap是一个有序的key-value集合,它内部是通过红-黑树实现的,如果对红-黑树不太了解,请先参考下这篇博文:红-黑树。下面我们先来看看TreeMap的继承关系:
java...
分类:
编程语言 时间:
2016-04-29 18:27:59
阅读次数:
201
我们继续分析TreeMap的源码
1.TreeMap源码分析(续)
1. 存取方法
TreeMap中的存取方法本质上就是对红黑树的插入和删除操作,从源码里体现的更为明显,其实就是对红黑树的插入和删除(可以参考:红黑树),下面简单看下源码:
/*************************** put和remove ****************************...
分类:
编程语言 时间:
2016-04-29 18:06:25
阅读次数:
184
前面已经学习了Map的部分内容,主要是HashMap和HashTable,这一节我们来看看它们两有啥异同点。
1. HashMap和HashTable的相同点
HashMap和HashTable都是存储“键值对”的散列表,而且都是采用拉链法来实现的。存储的思想都是:通过table数组存储,数组的每个元素都是一个Entry,而一个Entry就是一个单项链表,Entry链表中的每个...
分类:
编程语言 时间:
2016-04-29 17:23:53
阅读次数:
184
在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和操作(算法)统称为Java集合框架(JavaCollectionFramework)。
Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,然后直接应用就可以了,这样就大大提高了编程效率。
概述
什么是框架?...
分类:
编程语言 时间:
2016-04-29 16:07:28
阅读次数:
232
一集合框架
(1)集合的概念
现实生活中的集合:很多的事物凑在一起。
数学中的集合:具有共同属性的事物的总体。
Java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象。
(2)集合框架的概念
有了集合的概念,什么是集合框架呢?集合框架是为表示和操作集合而规定的一种统一...
分类:
编程语言 时间:
2016-04-29 15:16:51
阅读次数:
178
packagecn.itcast_03;importjava.util.ArrayList;importjava.util.List;/**List集合的特有遍历功能:*size()和get()方法结合使用*/publicclassListDemo2{publicstaticvoidmain(String[]args){//创建集合对象Listlist=newArrayList();//添加元素list.add("hello");list.add("wor..
分类:
其他好文 时间:
2016-04-29 02:06:00
阅读次数:
198
packagecn.itcast_03;importjava.util.ArrayList;importjava.util.List;/**List集合的特有功能:*A:添加功能* voidadd(intindex,Objectelement):在指定位置添加元素*B:获取功能* Objectget(intindex):获取指定位置的元素*C:列表迭代器* ListIteratorlistIterator():List集..
分类:
其他好文 时间:
2016-04-29 02:05:02
阅读次数:
368
ListIterator接口的成员方法booleanhasPrevious()Eprevious()packagecn.itcast_04;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importjava.util.ListIterator;/**列表迭代器:* ListIteratorlistIterator():List集合特有的迭代器* 该迭代器继..
分类:
其他好文 时间:
2016-04-29 02:02:56
阅读次数:
168
packagecn.itcast_03;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;/**存储自定义对象并遍历,用普通for循环(size()和get()结合)*/publicclassListDemo3{publicstaticvoidmain(String[]args){//创建集合对象Listlist=newArrayList();//创建学生对..
分类:
其他好文 时间:
2016-04-29 02:02:52
阅读次数:
369
packagecn.itcast_04;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importjava.util.ListIterator;/**问题?* 我有一个集合,如下,请问,我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现**ConcurrentModifi..
分类:
其他好文 时间:
2016-04-29 02:00:05
阅读次数:
272