Я пытаюсь преобразовать JSONArray
в Map<String,String>
через streams
и Lambdas
. Ниже не работает:Java-8 JSONArray to HashMap
org.json.simple.JSONArray jsonArray = new org.json.simple.JSONArray();
jsonArray.add("pankaj");
HashMap<String, String> stringMap = jsonArray.stream().collect(HashMap<String, String>::new, (map,membermsisdn) -> map.put((String)membermsisdn,"Error"), HashMap<String, String>::putAll);
HashMap<String, String> stringMap1 = jsonArray.stream().collect(Collectors.toMap(member -> member, member -> "Error"));
избежать типажей в Line 4
, я делаю Line 3
Line 3
дает следующие ошибки:
Multiple markers at this line
- The type HashMap<String,String> does not define putAll(Object, Object) that is applicable here
- The method put(String, String) is undefined for the type Object
- The method collect(Supplier, BiConsumer, BiConsumer) in the type Stream is not applicable for the arguments (HashMap<String, String>::new, (<no type> map, <no type> membermsisdn)
-> {}, HashMap<String, String>::putAll)
И Line 4
дает следующее сообщение об ошибке:
Type mismatch: cannot convert from Object to HashMap<String,String>
Я пытаюсь узнать Лямбдас и ручьи. Может кто-нибудь мне помочь?
Я не думаю, что это обязательно дубликат. Это преобразование JSONArray, и проблема возникает из-за использования lambdas –
@ozOli READ/THINK два раза, прежде чем вы будете замечать или реагировать на то, что, по вашему мнению, неверно –