类 SkipList<K,V>
- java.lang.Object
-
- xin.manong.weapon.base.collection.SkipList<K,V>
-
-
构造器概要
构造器 构造器 说明 SkipList()SkipList(int maxLevel)SkipList(int maxLevel, Comparator<? super K> comparator)SkipList(Comparator<? super K> comparator)
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 booleanadd(K key, V value)添加数据 1.Vget(K key)根据key获取值Entry<K,V>getFirst()获取首元素,如果跳表为空返回nullEntry<K,V>getLast()获取尾元素值,如果跳表为空返回nullbooleanisEmpty()列表是否为空Iterator<Entry<K,V>>iterator()获取数据迭代器Vremove(K key)根据key删除数据 1.Entry<K,V>removeFirst()移除首元素 1.Entry<K,V>removeLast()移除尾元素 1.Iterator<Entry<K,V>>reversedIterator()获取逆向数据迭代器intsize()获取数据数量StringtoString()-
从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
从接口继承的方法 java.lang.Iterable
forEach, spliterator
-
-
-
-
构造器详细资料
-
SkipList
public SkipList()
-
SkipList
public SkipList(int maxLevel)
-
SkipList
public SkipList(Comparator<? super K> comparator)
-
SkipList
public SkipList(int maxLevel, Comparator<? super K> comparator)
-
-
方法详细资料
-
add
public boolean add(K key, V value)
添加数据 1. 数据key存在更新数据值,不存在添加数据 2. 新增数据节点层数随机生成,保证最大层数不超过当前层数加1 3. 添加节点后需要调整前后相关节点的前向及后向节点引用- 参数:
key- 数据key,如果key为null抛出异常NullPointerExceptionvalue- 数据值,如果value为null抛出异常NullPointerException- 返回:
- 如果key存在,使用value覆盖原值并返回false,否则返回true
-
remove
public V remove(K key)
根据key删除数据 1. 如果key不存在,不进行任何操作并返回null,否则删除数据并返回数据值 2. 删除数据节点后需要进行以下调整 a)需要调整前后向相关节点的节点引用 b)可能需要降低跳表当前层数- 参数:
key- 数据key,如果key为null抛出异常NullPointerException- 返回:
- 成功返回数据值,否则返回null
-
get
public V get(K key)
根据key获取值- 参数:
key- 数据key,如果key为null抛出异常NullPointerException- 返回:
- 如果存在返回数据值,否则返回null
-
removeFirst
public Entry<K,V> removeFirst()
移除首元素 1. 如果跳表为空返回null 2. 删除首元素,需要进行相关调整 a)需要调整前后向相关节点的节点引用 b)可能需要降低跳表当前层数- 返回:
- 如果表为空返回null,否则返回首元素
-
removeLast
public Entry<K,V> removeLast()
移除尾元素 1. 如果跳表为空返回null 2. 删除尾元素,需要进行相关调整 a)需要调整前后向相关节点的节点引用 b)可能需要降低跳表当前层数- 返回:
- 如果表为空返回null,否则返回尾元素
-
isEmpty
public boolean isEmpty()
列表是否为空- 返回:
- 列表为空返回true,否则返回false
-
size
public int size()
获取数据数量- 返回:
- 数据数量
-
-