我有一张String - Array
的 map ,看起来像这样
dishIdQuantityMap[43]=[Ljava.lang.String;@301d55ce dishIdQuantityMap[42]=[Ljava.lang.String;@72cb31c2 dishIdQuantityMap[41]=[Ljava.lang.String;@1670799 dishIdQuantityMap[40]=[Ljava.lang.String;@a5b3d21
我需要做的是
- 创建一个新 map ,其中从字符串中提取仅包含关键字的数字,如下所示
( key -> key.replaceAll("\\D+","");
- 值-数组中的第一个值,如
value -> value[0];
- 过滤一个数组,这样只有这个巴黎剩下
value > 0
个
我花了一个小时试着自己解这个问题,但是用.collect(Collectors.toMap());
个方法都失败了.
更新: 我到目前为止所做的代码.我用过滤发不了 map .
HashMap<Long, Integer> myHashMap = request.getParameterMap().entrySet().stream()
.filter(e -> Integer.parseInt(e.getValue()[0]) > 0)
.collect(Collectors.toMap(MapEntry::getKey, MapEntry::getValue));