操作Map

本文介绍了Java中Map的基本使用方法,包括三种获取Map中值的方式:通过已知key直接获取、遍历keySet获取所有key-value对以及遍历entrySet获取所有key-value对。通过实例演示了每种方式的应用场景。

Java开发中map的使用是很多的。map基本信息就不说了,提下map中的key是封装set,这就表明它是不可重复的。看下jdk源码中HashMap中的的key封装。

    public Set<K> keySet() {
        Set<K> ks = keySet;
        return (ks != null ? ks : (keySet = new KeySet()));
    }

简单构造一个map,同时put几个值。如下:

Map<Integer,Integer> map = new HashMap<>();
        map.put(1, 1);
        map.put(2, 2);
        map.put(3, 3);
        map.put(4, 4);
        map.put(5, 5);
        map.put(6, 6);
        map.put(7, 7);
        map.put(8, 8);

如何map中的值?
第一种方式:
这种方式要事先知道key的值,开发过程中要约定好,put时候key是什么,按照这个key来去就可以了。比如我去上面map中key是5的值。

map.get(5);

上面这种方式很简单,也是用的最多的。

第二种方式:
这种方式适合我不知道key是什么时候,要先取到key,在根据key取value。看下面的代码

Set<Integer> keys=map.keySet();
for (Integer integer : keys) {
            System.out.println(integer+"-"+map.get(integer));
        }

也可以直接去value,如下

for (Integer integer : map.values()) {
            System.out.println(integer);
        }

第三种方式:
这种方式,当map中的数据量很大时候,相对于前面的方式,效果更好。看下代码

    for (Entry<Integer, Integer> entry : map.entrySet()) {
            System.out.println(entry.getKey()+"-"+entry.getValue());
        }

这种方式 可以取到key 和value。
更多信息,建议阅读jdk源码。

### Drools 中 Map操作 在 Drools 规则引擎中,`Map` 是一种常用的数据结构,可以方便地存储键值对数据。通过 Java 集合框架的支持,在 Drools 中可以直接利用 `java.util.Map` 接口来创建和操作映射表。 #### 创建并初始化 Map 对象 可以在 DRL 文件里定义全局变量或者作为事实对象的一部分引入已经实例化的哈希表: ```java // 定义全局map global java.util.Map myGlobalMap; rule "Initialize Global Map" when not (Map(this == myGlobalMap)) then myGlobalMap = new HashMap<>(); end ``` 对于传入的事实参数,则通常是在外部先构建好再插入到工作内存中去[^1]。 #### 访问与修改 Map 内容 一旦有了可用的地图实例之后就可以像常规Java程序那样对其进行读写访问了: - **获取单个元素**: 使用 get 方法按指定 key 获取 value 值. ```drools rule "Read from map" when $value : String() from entry["keyName"] of $myMap then System.out.println($value); end ``` - **更新/新增条目**: 可以直接调用 put 或者 merge 函数完成相应功能. ```drools rule "Update/Add Entry To Map" when ... then modify(myMap){ put("newKey","newValue"); }; end ``` 另外值得注意的是, 如果想要遍历整个集合的话也可以借助 foreach 结构来进行处理. #### 将 Map 插入 Working Memory 当需要把一个已有的映射关系加入规则执行上下文中时,可以通过 insert 操作符将其变为可被匹配的事实实体: ```drools insert(logicCreatedMap); // 添加新的fact进入working memory供后续rules使用 ``` 以上就是在 Drools 中关于 Map 类型的一些基本操作方法介绍.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值