Java数据结构API
常用
判断该字符是否为数字:Character.isDigit(value);
字符串
转为char[]: s.toCharArray()
求长度:.length() ---- 数组不带括号 , 只有字符串带括号
取某位的值:.index(i)?
去除字母留下数字的数组:s.replaceAll("[a-z]","").split(" ")
去除两边的多余的空格 .trim()
关键是 匹配函数
将字符串以空格分为数组 --- 匹配中间有 不止一个空格
s.split("\\s+")
StringBuilder === res.append("%20") --- 替换空格问题
将list集合拼接为字符串 并在中间拼上空格 String.join(" ",list);
数组
大小: .length ---- 不用带括号
排序: Arrays.sort(nums) ---- int[] nums
拷贝数组: System.arraycopy(ans,0,nums,0,nums.length);
将字符数组 转为 列表 Arrays.asList( String[])
列表List
按索引获取列表对应元素: list.get(i);
列表反转 的 工具API : Collections.reverse(list);
队列
普通队列
构造:Queue<TreeNode> queue = new LinkedList<>(){{add(root); }};
API:判空:queue.isEmpty()
添加元素 ---- 队尾:queue.add(node)
取元素 --- 对头: queue.poll()
下面是Java中Queue的一些常用方法:
添加
add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常
offer 添加一个元素并返回true 如果队列已满,则返回false
取元素 --- 获取对头元素,并删除
remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
poll 移除并返问队列头部的元素 如果队列为空,则返回null
在队列的头部查询元素
element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常
peek 返回队列头部的元素 如果队列为空,则返回null
不常用
put 添加一个元素 如果队列满,则阻塞 take 移除并返回队列头部的元素
双端队列
构造:Deque<Integer> deque = new LinkedList<>();
API: 判空:.isEmpty()
取队尾元素: .peekLast() 取队头元素: .peekFirst()
添加:队头: 队尾: .addLast(nums[i])
移除: 队头:.removeFirst() 队尾: .removeLast()
栈
构造: Deque<Integer> stack = new LinkedList<>();
Stack<> stack = new Stack<>();
哈希表
构造:Map<Integer,Integer> map = new HashMap<>();
存值:map.put(key, value);
取值:map.get(key);
是否存在某个key:map.containsKey(key);
getOrDefault(key,default) 作用:如果存在相应的key则返回其对应的value,否则返回给定的默认值。