Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在HashMap中存储多个值,以后再获取_Java - Fatal编程技术网

Java 在HashMap中存储多个值,以后再获取

Java 在HashMap中存储多个值,以后再获取,java,Java,我将数据存储在HashMap中,并在稍后阶段获取值 HashMap<String, byte[]> hm = new HashMap<String, byte[]>(); Key 1 IPAddress RandomNumber Byte data Key 2 IPAddress RandomNumber Byte data 谢谢大家! 您必须创建具有以下属性的类: class MyData{ private S

我将数据存储在HashMap中,并在稍后阶段获取值

HashMap<String, byte[]> hm = new HashMap<String, byte[]>();
Key 1
    IPAddress
    RandomNumber
    Byte data
Key 2
    IPAddress
    RandomNumber
    Byte data

谢谢大家!

您必须创建具有以下属性的类:

class MyData{
    private String IPAddress;
    private long RandomNumber;
    private byte[] data;

    //getters setters...
}

Map<String, MyData> hm = new HashMap<String, MyData>();
或者直接

  hm.get("Key 1").getData();
  hm.get("Key 1").getRandomNumber();
要在地图上迭代,请执行以下操作:

    Iterator it = hm.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry myDataEntry = (Map.Entry)it.next();
        System.out.println(myDataEntry.getKey() + " = " + myDataEntry.getValue());
        it.remove(); // avoids a ConcurrentModificationException
    }
从这里开始:

创建一个类,如:

public class Key{
    int randomNumber;
    byte[] data;
    String ipAddress;
}
并将其存储为地图的值

Map<String, Key> map;
Map;

希望对您有所帮助。

我认为您的问题有两种选择:

1-制作一个豆子来包装所有需要的内容(按照其他海报的建议)

2-如果你想为一个键添加更多的值,并且向你的项目中添加一个新的库不是一个问题,你可以使用google guava库,尤其是类。在这里,可以为单个键提供更多值


不过,我建议编写一个java bean,它将你想要的内容封装在一个对象中。

也许你应该考虑创建一个类来存储这些值。“KEY”是一个坏名字,可以使用它,特别是因为“KEY”不是它的关键所在。我在上面的问题中看到了它,并使用它而不去考虑它:好的。如何取回这些值?假设我想读取所有的值并选择一个特定的项目?其他人怀疑,1.)HashMap永久或临时存储数据?2.)是否可以从整个列表中删除特定记录?我编辑了访问属性的答案。对于疑问1-只要
hm
对象在范围内/未由GC收集,数据将被存储。疑问2-您可以使用hashmap的remove方法,您好,我无法获取代码来遍历所有要检索的数据。如何使用for循环遍历所有数据?我更新了答案。要使用for循环进行迭代,请参见链接中的第二个答案。您好,如何在该循环中获取RandomNumber()?
Map<String, Key> map;