JAVA算法竞赛常用数据结构

本文介绍了Java中的双端队列(Deque)、ArrayList、HashSet、HashMap以及PriorityQueue的用法,包括添加、删除、查看和操作顺序等内容。
摘要由CSDN通过智能技术生成

双端队列

双端队列可以任意在队列的两端进行增删,既可以当作队列使用,也可以当作栈使用。

// 初始化
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();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值