当前位置: 首页 > 知识库问答 >
问题:

在特定状态下获取hashmap中新添加、删除、修改的值

钦高峯
2023-03-14

我有一个应用程序,它在hashmap上分阶段操作,在不同的类中添加/删除/修改键。通过扩展Map类来创建包装类。以及攻击预定义的put和remove方法。

HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("Key1","Value1");
hashMap.put("Key2","Value2");
hashMap.put("Key3","Value3");
hashMap.put("Key4", "Value4");
hashMap.remove("Key1");
hashMap.put("Key2", "ChangedValue");

共有1个答案

宋勇
2023-03-14

最简单的方法是将HashMap扩展到您自己的类中,并记录更改:

class RecordHashMap extends HashMap<String,String> {
    private List<String[]> changes;

    public RecordHashMap() {
      super();
      changes = new ArrayList<String[]>();
    }

    @Override
    public String put(String key, String value) {

        if (containsKey(key)) {
            changes.add(new String[]{"modified",key,value});
        } else {
            changes.add(new String[]{"added",key,value});
        }
        return super.put(key, value);
     }

     @Override
     public String remove(Object key) {
         if (containsKey(key)) {
             String value = get(key);
             changes.add (new String[]{"removed",(String)key,value});
         }
         return super.remove(key);
     }

     public List<String[]> getChanges() {

         return changes;
    }
}

这样您就可以始终检查最后的更改,因为它们都被记录下来了。当然,你可以在录制时打印出来--或者以后再打印出来。您可以添加索引计数器(允许只查看x个最近的更改),因为您将它们存储在数组列表中。

 类似资料:
  • 问题内容: 我试图将值添加到具有以下结构的多值HashMap中: 我其实是想坚持一个特定项目(A View的Android中的如信息)的引用,所以值将包含的项目是唯一的,的旨意所包含的项X坐标值。用户在屏幕上可以有很多项目,他也可以有100个具有相同ID的项目,因此相应地,列表将包含每个项目X坐标值。 更清楚地说,我的HashMap将包含以下数据 {1,{200,400.5,500.6 …}},其

  • 我正在使用Google OAuth连接到仪表板,问题是当

  • 所以我有一个看起来像这样的文件: 其中我希望第一列是hashmap的键(e1,或e2,或e3),值是一个名为“ratings”的ArrayList,我希望第二列的值(int)位于ArrayList的第n个索引中。 总而言之:文件第一列中的每个字符串在hashmap(userList)中都有自己的键,程序将检查它是否有这个键,如果没有键,它将创建一个新的arraylist作为这个键的值。arrayL

  • 本文向大家介绍angularJs 表格添加删除修改查询方法,包括了angularJs 表格添加删除修改查询方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: css 以上这篇angularJs 表格添加删除修改查询方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 正如标题所暗示的那样,我正在尝试以中的数组为目标,但如果您尝试过,您会猜到。这并不像听起来那么简单。我在这里看了几个问题(React:我如何更新setState上的state.item[1]?(使用JSFiddle)和数组中对象键的reactjs-setstate),但这两个问题都没有解决我的问题。 我需要的是在数组中指定一个特定的索引,并根据用户在