面向Google刷题 · 二阶段:哈希表

32 阅读1分钟

只介绍刷题时用到的方法,不是数据结构学习

Map

HashMap

  • put()/get()/getOrDefault()

读写操作,读操作可设默认值
getOrDefault常用于计数,也可以使用数组代替

  • containsKey()

判断是否存在某个键值对,常用于去重、保存最新值

  • remove()

删除某键值对

  • 遍历
for (Map.Entry<Object, Object> entry: map.entrySet()) {
    Object key = entry.getKey();
    Object value = entry.getValue();
}
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
    Map.Entry entry = (Map.Entry) iter.next();
}
map.forEach((k, v) -> {
    
});

Set

HashSet

  • add(Object)

返回true添加成功,返回false添加失败。
set是无重复元素的集合,可以通过返回值代替contains方法

  • contains()
  • remove(Object)

TreeSet

  • ceiling()

TreeSet本身是一个有序集合,ceiling传入一个元素可以返回第一个大于参数元素的集合元素。在部分题目中优先级队列需要频繁操作集合元素性能差可以考虑TreeSet