欢迎大家来到IT世界,在知识的湖畔探索吧!
今天被小伙伴问到怎么用Java实现消息队列。这种实现的例子其实CSDN或者度娘其实一大堆。
先说说队列的一个场景,假设你的服务器只能扛50个请求。但是某一时刻的峰值服务器收到了2000个请求。这时候你就需要把它做成队列来处理了,然后根据先进先出的顺序来处理。
这里我们使用LinkedList来实现。看下面的代码
import java.util.LinkedList;
public class MyQueue<T> {
private final LinkedList<T> queue=new LinkedList<>();
public synchronized void push(T e){
queue.addFirst(e);
}
public T peek(){
return queue.getLast();
}
public void pop(){
queue.removeLast();
}
public boolean empty(){
return !queue.isEmpty();
}
@Override
public String toString(){
return queue.toString();
}
}
欢迎大家来到IT世界,在知识的湖畔探索吧!
然后我们写一个测试类。我们构建一个场景,我们给一个字符串,比如 “这是一个先进先出的队列”,然后我们把这个字符串切割成单个字符,每个字符后面接一个星号和原字符串区别开。
欢迎大家来到IT世界,在知识的湖畔探索吧!public class QueueTest {
public static void main(String[] args) {
MyQueue<String> queue=new MyQueue<>();
for(char s:"这是一个先进先出的队列".toCharArray()){
queue.push(String.valueOf(s));
}
while (queue.empty()){
System.out.print(queue.peek()+"*");
queue.pop();
}
}
}
最后看一下执行效果。
至此,队列实现了。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/48766.html