用于编写4条信息的Java数据结构

时间:2010-08-07 09:18:41

标签: java

我需要提取有关两个IP地址的两条信息,然后将这些信息和两个地址写入。 我在考虑一组IP地址对,但我可以通过哪些数据结构写出所有这些信息? 感谢

6 个答案:

答案 0 :(得分:1)

PcapPacketHandler<String> jPacketHandler = new PcapPacketHandler<String>(){
            int totalLength = 0;
            public void nextPacket(PcapPacket packet, String user) {
                        Ip4 ip = new Ip4();
                        String sIP;
                        String dIP;
                        if (packet.hasHeader(ip) == false){
                            return;
                        }
                         totalLength = totalLength+ ip.getPayloadLength();
                         sIP = org.jnetpcap.packet.format.FormatUtils.ip(ip.source());
                         dIP = org.jnetpcap.packet.format.FormatUtils.ip(ip.destination());
                         System.out.println("SIP = "+sIP+"  "+"destIP = "+dIP+" "+"Payload Length = "+ip.getPayloadLength());
                         System.out.println("Total Length = "+totalLength);
                }
      };

        pcap.loop(10, jPacketHandler, "");
        pcap.close();

答案 1 :(得分:0)

即使这不是Javascript应用程序,您也可以使用JSON,因为它提供了一种简洁的方式来一起读取/存储多个数据。查看JSON Java Documentation了解有关课程的详细信息,并下载相关资源。

答案 2 :(得分:0)

如果您只是编写信息,则可以始终使用Hashmap。除非你知道你打算用数据做什么,否则很难说什么是最好的。

答案 3 :(得分:0)

只需创建一个自定义类(POJO),并根据您的编写方式将其设为Serializable。这样你就可以清楚地命名你的字段(以及getter和setter),使你的代码更容易阅读(和扩展)。

答案 4 :(得分:0)

这样的事情......

class BigClass { //<br>
   private IPAdreess  addr1; //<br>
   private IPAddress  addr2;  //<br>
   private SomeInfo   additionalInfo;//<br>

   //implement accessors//<br>

   //implement equals, hashCode//<br> 

}//<br>

IPAddress,SomeInfo是您的用户类型。在java中,InetAddress表示IP地址。这可能远远超过您的自定义类型。

选择合适的“集合”数据结构可以决定很多因素。你想保留订单吗?你是通过多个线程填充它吗?您在集合中期望的条目数量是多少? 100S?百万?

为什么不发布您的代码?用真实代码提供反馈可能更容易..

答案 5 :(得分:0)

我不太明白你想要绘制的图形。我会做的是

  1. 将所有数据转储到sql数据库
  2. 运行查询以生成图表的输入。
  3. 绘制图表,例如使用JFreeChart甚至是Excel
  4. 我想象一下沿线的查询

    select source_ip, dest_ip, sum(time), sum(sent_bytes) group by source_ip, dest_ip