java - 在 HashMap 中存储多个值并稍后获取

标签 java

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

HashMap<String, byte[]> hm = new HashMap<String, byte[]>();

现在,我想在其中存储另外两个值。例如,我想存储如下信息。有人可以告诉我,我该如何修改 Hashmap 来实现这种方式吗?我还需要读取所有这些存储的值,并在后期从中找到一些值。

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>();

您可以获得的值如下:

MyData dataObj = hm.get("Key 1");
dataObj.getRandomNumber();

或直接

  hm.get("Key 1").getData();
  hm.get("Key 1").getRandomNumber();

迭代 map :

    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
    }

取自这里:Iterate through a HashMap

关于java - 在 HashMap 中存储多个值并稍后获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21802776/

相关文章:

java - 使用 JIRA 进行身份验证

java - 读取 HTML 时在 JEditorPane 中应用 ForegroundActions 的性能不一致

java - 隐藏面板后空白区域仍然可见

java CLASSPATH 不能在命令行上工作

java - 在 SWT 标签中显示 HTML 文本

java - 如何绕过 java 中的 InputMisMatchException

java - 如何在测试中覆盖单个应用程序属性

java - 通过其 ID 序列化 JAXB 对象?

c# - IndexOf 方法在 C#/Java 中应该返回 -1 时返回 0

java - 如何将 Observable.fromIterable 中的项目索引传递给 subscribe 方法中的 onNext ?