双端队列
双端队列可以任意在队列的两端进行增删,既可以当作队列使用,也可以当作栈使用。
// 初始化
Deque<Integer> d=new LinkedList<>();
// 在队首增加元素
d.addFirst(1);
// 查看队首元素
d.peekFirst();
// 删除队首元素
d.pollFirst();
// 在队尾增加元素
d.addLast(1);
// 查看队尾元素
d.peekLast();
// 删除队尾元素
d.pollLast();
// 统计长度
d.size();
列表
// 初始化空表
List<Integer> l1=new ArrayList<>();
// 使用其它列表初始化
List<Integer> l2=new ArrayList<>(l1);
// 增加元素
l1.add(1);
// 按位置删除元素
l1.remove(0);
// 列表长度
l1.size();
// 反转队列
Collections.reverse(l);
// 对队列进行排序
Collections.sort(l);
HashSet
// 初始化
HashSet <Integer> h=new HashSet<>();
// 增加元素
h.add(1);
// 删除元素
h.remove(1);
// 判断是否存在
h.contains(1);
// 长度
h.size();
// 转换为数组
h.toArray();
HashMap
// 初始化
HashMap<Integer,Integer> h=new HashMap<>();
// 增加
h.put(1,5);
// 查找
h.get(1,5);
// 删除元素
h.remove(1);
// 判断是否存在键值对
h.containsKey(1);
// 长度
h.size();
// 遍历
for(int x:h1.keySet()){
System.out.println(x);
System.out.println(h1.get(x));
}
优先队列
// 初始化(升序)
PriorityQueue<Integer> q=new PriorityQueue<>();
// 初始化(降序)
PriorityQueue<Integer> q1=new PriorityQueue<>(Comparator.reverseOrder());
// 增加
q.offer(1);
//删除指定元素
q.remove(1)
// 查看队首元素
q.peek();
// 出队
q.poll();
// 长度
q.size();