类 BTree<K,V>
- java.lang.Object
-
- xin.manong.weapon.base.collection.BTree<K,V>
-
-
构造器概要
构造器 构造器 说明 BTree()BTree(int m)BTree(int m, Comparator<? super K> comparator)
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 booleanadd(K key, V value)添加数据 1.Entry<K,V>getFirst()获取第一个元素Entry<K,V>getLast()获取最后一个元素booleanisEmpty()是否为空Iterator<Entry<K,V>>iterator()获取数据迭代器Vremove(K key)移除数据 1.Entry<K,V>removeFirst()移除第一个元素Entry<K,V>removeLast()移除最后一个元素Iterator<Entry<K,V>>reversedIterator()获取逆向数据迭代器Vsearch(K key)搜索数据List<V>search(K startKey, K endKey)搜索数据范围 如果startKey大于endKey抛出异常IllegalArgumentExceptionintsize()数据数量StringtoString()格式化BTree数据-
从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
从接口继承的方法 java.lang.Iterable
forEach, spliterator
-
-
-
-
构造器详细资料
-
BTree
public BTree()
-
BTree
public BTree(int m)
-
BTree
public BTree(int m, Comparator<? super K> comparator)
-
-
方法详细资料
-
size
public int size()
数据数量- 返回:
- 数据数量
-
isEmpty
public boolean isEmpty()
是否为空- 返回:
- 没有数据返回true,否则返回false
-
add
public boolean add(K key, V value)
添加数据 1. 如果数据key已经存在,则使用value覆盖原值,返回false 2. 添加数据之后,如果破坏节点结构规则,需调整节点 a)如果节点数据量(索引量)大于m,需要分裂节点 b)如果节点最大值改变,需要修改其父节点索引数据 c)以上a)和b)操作可能产生链式影响- 参数:
key- 数据key,如果key为null抛出异常NullPointerExceptionvalue- 数据值,如果value为null抛出异常NullPointerException- 返回:
- 如果key不存在返回true,否则返回false
-
remove
public V remove(K key)
移除数据 1. 如果数据key存在则删除数据并返回数据值,否则不做任何操作并返回null 2. 删除数据后,如果破坏节点结构规则,需调整节点 a)如果节点数据量(索引量)小于(m-1)/2+1,进行以下步骤调整 1)如果兄弟节点数据量(索引量)大于m,则像兄弟节点借取一个数据(索引),否则进行2) 2)与兄弟节点合并 3)1)和2)会对父节点索引造成影响,需要调整父节点索引数据 b)删除数据可能影响父节点索引数据,需要对父节点索引数据进行调整 c)以上a)和b)操作可能造成链式影响- 参数:
key- 数据key,如果key为null抛出异常NullPointerException- 返回:
- 成功返回数据值,否则返回null
-
search
public V search(K key)
搜索数据- 参数:
key- 数据key,如果key为null抛出异常NullPointerException- 返回:
- 如果key存在返回数据,否则返回null
-
search
public List<V> search(K startKey, K endKey)
搜索数据范围 如果startKey大于endKey抛出异常IllegalArgumentException- 参数:
startKey- 起始key,如果key为null抛出异常NullPointerExceptionendKey- 结束key,如果key为null抛出异常NullPointerException- 返回:
- 返回在起始key(包含)和结束key(包含)范围内数据
-
-