java数据结构模板

sdjasj

变长数组

1
2
3
4
5
6
7
8
List<E> list = new LinkedList<>();
void add(int index, E element)
boolean addAll(int index, Collection<? extends E> c)
E get(int index)
int indexOf(Object o)//返回list集合中第一次出现o对象的索引位置,如果list集合中没有o对象,那么就返回-1
E remove(int index)
E set(int index, E element)
List<E> subList(int fromIndex, int toIndex)//返回从索引fromIndex到toIndex的元素集合,包左不包右

队列

1
2
3
4
5
Queue<E> queue = new LinkedList<>();
offer(e) //进队列,将元素加入队列末尾
poll() //获取队列头的元素并移除
peek() //获取队列头的元素
isEmpty() //判断是否为空

堆(小根堆)

1
2
3
4
5
6
7
8
9
10
11
PriorityQueue<E> minHeap = new PriorityQueue<>();
minHeap.offer();//插入
minHeap.poll();//弹出堆顶元素
minHeap.isEmpty();
//可用自定义比较实现大根堆
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(new Comparator<Integer>(){
@Override
public int compare(Integer num1, Integer num2) {
return num1 >= num2 ? -1 : 1 ;
}
});

1
2
3
4
5
Deque<E> stack = new LinkedList<>();
stack.push()//addFirst()
stack.pop()//removeFri==irst()
stack.peek()//peekFirst()
//注意元素是头插入,按输入顺序输出时要逆序输出

哈希表

1
2
3
4
5
6
7
8
9
Map<K, V> eleMap = new HashMap<>();//可用匿名内部类初始化
eleMap.put(K,V);
eleMap.get(K);
eleMap.remove(K);
eleMap.containskey(key) //查询集合中是否包含某个K
eleMap.containsvalue(value) //查询集合中是否包含某个value值
eleMap.keySet() //获取集合中所有键的集合
eleMap.values() //获取集合中所有值的集合 接口为Set
eleMap.entrtSet() //返回Map.Entry对象,键值对

集合

1
2
3
4
5
Set<E> set = new HashSet<>();
set.add()// 重复的元素不会被添加返回false,添加成功返回true
set.contains()
set.remove()// 删除元素,删除成功返回 true,否则为 false

有序集合

1
2
3
4
5
6
7
8
9
TreeSet<E> set = new TreeSet<>();
set.add();
set.contains();
set.remove();
//lower、floor、ceiling 和 higher 分别返回小于、小于等于、大于等于、大于给定元素的元素,如果不存在这样的元素,则返回 null
set.lower();
set.floor();
set.ceiling();
set.higher();

待续…

  • 標題: java数据结构模板
  • 作者: sdjasj
  • 撰寫于: 2022-02-04 21:56:43
  • 更新于: 2022-02-13 15:05:57
  • 連結: https://redefine.ohevan.com/2022/02/04/java数据结构模板/
  • 版權宣告: 本作品采用 CC BY-NC-SA 4.0 进行许可。
 留言