发布于2025-01-07 21:03 阅读(1054) 评论(0) 点赞(16) 收藏(0)
我有一个程序,包含一个链表数据结构来存储自定义 TCP 数据包。
测试程序读入一个数据包,将其添加到 Linked List 队列中,并立即打印数据包值(时间戳值)以供确认。此过程在 while 循环中重复 10 次,因此 Linked List 队列中有 10 个数据包。
问题出现在读入所有数据包后检查队列值时。问题在于,尽管知道队列中(据称)有 9 个其他具有不同值的数据包,但只显示读入的最后一个数据包的值。
如果有人能帮助我理解这种看似黑魔法的魔法,我将不胜感激。
public void readPackets() throws IOException {
int counter = 1;
while(counter < 10){
packet = con.fillWIMPacket(packet);
packetQueue.add(packet);
System.out.println("Packet " + counter + " added to Queue");
System.out.println("Packet " + counter + " " + packet.toString());
counter++;
}
}
public void printPacketValues(){
System.out.println("Packet Queue size is " + packetQueue.size());
for(int i = 0; i < packetQueue.size(); i++){
System.out.println("Packet " + i + ": " + packetQueue.get(i));
}
}
我应该澄清一下,第一个 readPackets() 的 println() 方法以正确的顺序显示数据。但是,printPacketValues() 的 println() 只是显示最后一个数据包的值 10 次。
while(counter < 10){
packet = new PacketType(); //change here and try once.
packet = con.fillWIMPacket(packet);
packetQueue.add(packet);
System.out.println("Packet " + counter + " added to Queue");
System.out.println("Packet " + counter + " " + packet.toString());
counter++;
}
作者:黑洞官方问答小能手
链接:http://www.javaheidong.com/blog/article/694654/ea1862a2d5f42f1bfaad/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!