TOC
KINA

KINA-0

Start having fun with KINA right now!

Java数据结构(2):集合框架

Java集合框架(Collection、Map)提供了一套性能优良、使用方便的接口和类,位于java.util包中。

1 List

接口:java.util.List<E>

实现类:

  • java.util.ArrayList<E>:变长数组
  • java.util.LinkedList<E>:双链表

常用方法:

  • boolean add(E e):在末尾添加一个元素
  • E get(int index):获取指定位置的元素
  • E set(int index, E e):修改指定位置的元素(返回旧元素)
  • int size():获取长度(元素数)
  • boolean isEmpty():判空
  • void clear():清空

2 栈

类:java.util.Stack<E>

常用方法:

  • void push(E e):压入元素
  • E pop():弹出并返回栈顶元素
  • E peek():返回栈顶元素
  • int size():获取长度
  • boolean isEmpty():判空
  • void clear():清空

3 队列

接口:java.util.Queue<E>

实现类:

  • java.util.LinkedList<E>:双链表
  • java.util.PriorityQueue<E>:优先队列,默认为小根堆
    • 大根堆:new PriorityQueue<E>(Collections.reverseOrder())

常用方法:

  • boolean add(E e):在队尾添加一个元素
  • E remove():删除并返回队头
  • E peek():返回队头
  • int size():获取长度
  • boolean isEmpty():判空
  • void clear():清空

4 Set

接口:java.util.Set<K>

实现类:

  • java.util.HashSet<K>:哈希表
  • java.util.TreeSet<K>:平衡树

常用方法:

  • boolean add(K key):添加元素(若已存在则无法添加,返回false)
  • boolean contains(Object key):判断是否包含某个元素
  • boolean remove(Object key):删除元素
  • int size():获取长度
  • boolean isEmpty():判空
  • void clear():清空

TreeSet特有方法:

  • K ceiling(K key):返回大于等于指定元素的最小元素,不存在则返回空
  • K floor(K key):返回小于等于指定元素的最小元素,不存在则返回空
  • K higher(K key):">"
  • K lower(K key):"<"

5 Map

接口:java.util.Map<K, V>

实现:

  • java.util.HashMap<K, V>:哈希表
  • java.util.TreeMap<K, V>:平衡树

常用方法:

  • V put(K key, V value):添加关键字及其对应的值(返回空或被覆盖的旧值)
  • V get(Object key):返回关键字对应的值,不存在则返回空
  • V getOrDefault(Object key, V defaultValue):返回关键字对应的值,不存在则返回默认值
  • boolean containsKey(Object key):判断是否包含关键字
  • boolean remove(Object key):删除关键字
  • int size():获取长度
  • boolean isEmpty():判空
  • void clear():清空
  • Set<Map.Entry<K, V>> entrySet():获取Map中所有键值对的集合

键值对(Map.Entry<K, V>)常用方法:

  • K getKey():获取关键字
  • V getValue():获取值

TreeMap特有方法:

  • Map.Entry<K,V> ceilingEntry(K key):返回关键字大于等于指定关键字的最小元素,不存在则返回空
  • Map.Entry<K,V> floorEntry(K key):返回关键字小于等于指定关键字的最小元素,不存在则返回空
  • ……

发表评论