java - 使用java更改HashMap中的部分值

标签 java mysql hashmap

我有一个 HashMap,其中 String 作为键类型,String[] 作为值类型。 我希望能够更改部分值(String 数组)。

我使用此 HashMap 存储文件内容,将文件名保存为键,将其内容保存为值 (String[])。

我已经成功收集了这个HashMap的所有数据。我想要值(value) 以这种方式显示:

Key: alert
Value: 

    0-=Rule_Name,Configuration_Set_ID,Alert_UID,Headline,Create_DateTime
    1-f5_high_compression_profile,,211,61b6cc42-0b32-4bd9-a3be-a98d7144ca85,Compression profile gzip level too high,1565003688537
    2-f5_automap_enabled,407,0b380e7d-22f9-40c2-8277-3a5ed2ea7116,Automap enabled,1565003696956

我想将字符串中的epochtime值替换为Date,对于每个记录(纪元),使用此约定yyyy/MM/dd HHmmss文件中的时间可能有所不同)。

public void createHashMapWithAlertCSVContent() throws Exception {
    for(String item: lstServer) {
        String[] contentCSVStr=
            CmdHelper.Remote.File.cat(SERVER,INDENI_INSIGHT_PATH + 
            "/"+item).split("\n");
        mapServer.put(FileUtil.removeExtension(item), contentCSVStr);
    }
    if(mapServer.containsKey("job")) {
        mapServer.remove("job");
        Assert.assertEquals(mapServer.size()-1, lstServer.size());
    } else {
        Assert.assertEquals(mapServer.size(), lstServer.size());
    }

    mapServer.entrySet().forEach(entry-> {
         System.out.println(entry.getKey() + " " + 
         entry.getValue());
    });
}

我期望发生的情况是字符串数组中的任何纪元时间条目都将替换为 yyyy/MM/dd HHmmss 约定。 我有这个字符串 f5_high_compression_profile,,211,61b6cc42-0b32-4bd9-a3be-a98d7144ca85,压缩配置文件 gzip 级别太高,1565003688537。 我想将 1565003688537 更改为 yyyy/MM/dd HHmmss 约定。

当我读取 CSV 的内容时,

1565003688537 可能不是相同的值,因此它必须能够处理该问题。

我想将ecpoh时间的每个条目更改为日期格式值。

最佳答案

您可以通过map.get(key)读取值,然后对其进行编辑,然后使用map.put(key, value)再次放置它。

如果值是可变类型,例如。 String[] 那么你可以直接在这个对象上进行修改,因为映射引用了这个对象并且不保存副本。 例如。

String[] value = map.get(key);
value[0] = "new String";

如果你想改变 String[] 的大小,那么你需要创建新列表并将其放在相同的键下以替换以前的值,或者你可以更改类型以使用 List 而不是 String[] ,这样它修改起来会更容易。

关于java - 使用java更改HashMap中的部分值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57357710/

相关文章:

java - 为什么不能创建没有花括号的 1 语句函数?

java - 本地化 Spring Boot 验证消息中的消息参数未解析

mysql - Node.js 套接字 io 'Error:Client is not defined'

java - 将 Java 对象类型转换为我的类

java - 使用 Guice 设置属性的正确方法是什么?

mysql - 检查值是否存在于逗号分隔列表中

php - 通过 HTML 表单将下拉菜单的值发布到 PHP 页面

hashtable - 开放寻址与分离链接

dart - Dart 中 Map containsKey 和 containsValue 的时间复杂度

java - 在Java中反向HashMap键和值