カスタム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回表示するだけです。