Java-链表存储困难



我有一个包含链表数据结构的程序,用于存储自定义TCP数据包。

测试程序读取数据包,将其添加到链表队列中,并立即打印数据包值(时间戳值)以进行确认。这个过程在while循环中重复10次,因此链表队列中有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++;
} 

相关内容

  • 没有找到相关文章

最新更新