Math
- Math.sqrt(xx)
对xx进行开方
String
- charAt(xx)
xx字母在字符串中的位置 - compareTo(xx)
比较两个字符串首字母的字典顺序大小,如果首字母相同则会比较第二个字母,以此类推 - xx.toCharArray
将字符串转为字符数组 - xx.indexOf(char c, int i)
返回c在字符串xx上的位置,找不到则返回-1
PriorityQueue
PriorityQueue(优先级队列):在Java1.5中引入。PriorityQueue是基于优先堆的一个无界队列,这个优先队列中的元素可以默认自然排序或者通过提供的Comparator(比较器)在队列实例化的时排序。要求使用Java Comparable和Comparator接口给对象排序,并且在排序时会按照优先级处理其中的元素。
数据结构
优先级队列底层的数据结构其实是一颗二叉堆
(1)二叉堆是一个完全二叉树
(2)根节点总是大于左右子节点(大顶堆),或者是小于左右子节点(小顶堆)。
-
add(xx) 和 offer(xx)
都是往优先队列中插入元素,add(xx) 方法插入元素失败时会抛出异常,offer(xx) 插入元素失败时会返回false
-
element() 和 peek()
都是获取元素但不删除队列首元素,也就是队列中权值最小的元素。element()会抛出异常,peek()会返回null。
-
remove() 和 poll()
都是获取元素并删除队列首元素。remove()会抛出异常,poll()会返回null。
-
remove(Object o)
用于删除队列中的指定元素(如果队列中有多个相同元素,只删除一个),由于删除操作会改变队列结构,所以要进行调整;又由于删除元素的位置可能是任意的,所以调整过程比其它函数稍加繁琐。
-
indexOf(Object o):查询对象o的索引
-
contain(Object o):判断是否容纳了元素
Map
- hashmap.getOrDefault(Object key, V defaultValue)
获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值defaultValue。 - hashmap.computeIfAbsent(K key, Function remappingFunction)
如果 key 对应的 value 不存在,则使用获取 remappingFunction 重新计算后的值,并保存为该 key 的 value,否则返回 value。
List
- arraylist.subList(int fromIndex, int toIndex)
用于截取并返回动态数组中的起始位置(包含该索引位置)到结束位置(不包含该索引位置)的那一部分。 - void add(int index,E element)
用于在列表的指定位置插入指定元素,并将当前处于该位置的元素及其后续元素的索引加 1。