java 创建一个队列,长度是7,将数据放入队列里面,队列满了之后,队列里面的数据实行先进先出,移除老数据,新数据入队列,根据队列里面的id作为key,number作为value存入map里面。
时间: 2024-12-03 21:16:17 浏览: 5
在Java中,你可以使用`java.util.LinkedList`或者`java.util.Queue`接口以及`java.util.HashMap`来实现这个需求。这里我们使用`LinkedList`因为它支持动态扩容,并且实现队列操作。以下是实现该功能的一个简短示例:
```java
import java.util.LinkedList;
import java.util.HashMap;
public class QueueWithMap {
private LinkedList<Integer> queue = new LinkedList<>(); // 队列
private HashMap<Integer, Integer> map = new HashMap<>(); // 使用id作为key,number作为value的map
public void enqueue(int id, int number) {
if (queue.size() < 7) { // 如果队列不满
queue.addLast(id); // 将id添加到队列末尾
map.put(id, number); // 同时将id和number加入map
} else { // 队列已满
if (!queue.isEmpty()) { // 取出并删除第一个元素
int firstId = queue.removeFirst();
map.remove(firstId);
}
queue.addLast(id);
map.put(id, number);
}
}
public int getFromMap(int id) {
return map.getOrDefault(id, -1); // 返回对应id的number,如果不存在则返回默认值(-1)
}
// 其他队列相关的操作...
}
```
在这个例子中,`enqueue`方法用于添加新的数据,如果队列已满,则会先移除最早插入的数据(FIFO原则)。`getFromMap`方法用于查询指定id对应的number。
阅读全文