本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Java - 链表存储难度

发布于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黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

16 0
收藏该文
已收藏

评论内容:(最多支持255个字符)