@@ -9,77 +9,77 @@ javaalgorithm
9
9
在实现的过程中也发现了Java集合类库中的一些问题。
10
10
=========
11
11
12
- 1, 并没有实现函数式编程语言中三个经典的操作符,map,filter,reduce
12
+ 1 . 并没有实现函数式编程语言中三个经典的操作符,map,filter,reduce
13
13
14
- 2, toArray方法返回的是Object[ ] 类型,原因是Java不能够通过泛型创建数组,我是通过toVector来实现这个需求的
14
+ 2 . toArray方法返回的是Object[ ] 类型,原因是Java不能够通过泛型创建数组,我是通过toVector来实现这个需求的
15
15
16
- 3, JDK集合类库中所有的迭代器next方法实际上会向下移动一位,而我的集合迭代器中则是在hasNext的时候向下移动一位。
16
+ 3 . JDK集合类库中所有的迭代器next方法实际上会向下移动一位,而我的集合迭代器中则是在hasNext的时候向下移动一位。
17
17
18
18
#数据结构
19
19
20
20
##链表
21
21
22
- ### Vector: 可变数组实现,名字参考C++中同名的类,和集合类库中的ArrayList类似。
22
+ 1 . Vector: 可变数组实现,名字参考C++中同名的类,和集合类库中的ArrayList类似。
23
23
24
- ### LinkedList: 类似于Java中的LinkedList,双向链表实现,同时也实现了Queue接口,因此可以被用作队列。
24
+ 2 . LinkedList: 类似于Java中的LinkedList,双向链表实现,同时也实现了Queue接口,因此可以被用作队列。
25
25
26
26
##栈 (栈并没有继承任何类或者接口(也是Java集合框架中的一个问题))
27
27
28
- ### LinkedStack:使用双向链表实现的一个栈,对于标准的push,pop和head都是O(1)
28
+ 1 . LinkedStack:使用双向链表实现的一个栈,对于标准的push,pop和head都是O(1)
29
29
30
- ### ExtensiveStack:同时记录了栈中的最大值和最小值,来自于金典
30
+ 2 . ExtensiveStack:同时记录了栈中的最大值和最小值,来自于金典
31
31
32
- ### MultiStack:表示多个栈的栈,也就是说这个数据结构中可以有任意多的栈,来自金典
32
+ 3 . MultiStack:表示多个栈的栈,也就是说这个数据结构中可以有任意多的栈,来自金典
33
33
34
34
##队列(暂时不会实现阻塞队列)
35
35
36
- ### PriorityQueue:使用最大堆实现的优先队列
36
+ 1 . PriorityQueue:使用最大堆实现的优先队列
37
37
38
38
##字典
39
39
40
- ### HashMap:使用链接法解决冲突的Map。
40
+ 1 . HashMap:使用链接法解决冲突的Map。
41
41
42
- ### TreeMap:在插入键的时候会保持键的比较顺序,在遍历的时候会按照比较顺序来。
42
+ 2 . TreeMap:在插入键的时候会保持键的比较顺序,在遍历的时候会按照比较顺序来。
43
43
44
- ### LinkedHashMap:类似于HashMap,但是保持了插入顺序。
44
+ 3 . LinkedHashMap:类似于HashMap,但是保持了插入顺序。
45
45
46
46
##集合
47
47
48
- ### HashSet:使用HashMap实现的集合
48
+ 1 . HashSet:使用HashMap实现的集合
49
49
50
- ### TreeSet:使用红黑树实现的集合
50
+ 2 . TreeSet:使用红黑树实现的集合
51
51
52
52
##平衡树
53
53
54
- ### AVL树
54
+ 1 . AVL树
55
55
56
- ### 红黑树
56
+ 2 . 红黑树
57
57
58
- ### B树
58
+ 3 . B树
59
59
60
- ### B+树
60
+ 4 . B+树
61
61
62
- ## 前缀树,也叫单词查找树(Trie),通过在每一个节点上使用HashMap来存储子节点,使得Tries可以支持UTF-8
62
+ 5 . 前缀树,也叫单词查找树(Trie),通过在每一个节点上使用HashMap来存储子节点,使得Tries可以支持UTF-8
63
63
64
64
##图
65
65
66
66
##其他
67
67
68
- ### 跳跃表(SkipList)
68
+ 1 . 跳跃表(SkipList)
69
69
70
- ### BitSet
70
+ 2 . BitSet
71
71
72
- ### StringBuilder
72
+ 3 . StringBuilder
73
73
74
74
#算法
75
75
76
76
##排序算法
77
77
78
- ### 快速排序,也是默认的排序方法
78
+ 1 . 快速排序,也是默认的排序方法
79
79
80
- ### 计数排序
80
+ 2 . 计数排序
81
81
82
- ### 基数排序
82
+ 3 . 基数排序
83
83
84
84
85
85
0 commit comments