【问题标题】:How to get key value pair from a Pojo objects stored in ArrayList using java 7如何使用 java 7 从存储在 ArrayList 中的 Pojo 对象中获取键值对
【发布时间】:2021-03-10 21:12:33
【问题描述】:

我通过 Request obj 传递了一个 Json,它通过 gson 转换并存储在 ArrayList 中。 我的结构如下所示:

我想把所有的键和它的值写到一个文件中。

我试过了:

protected String add(ArrayList<User> input, HttpServletRequest request,
      HttpServletResponse response, User currentUser) throws APException {
 Map<String, String> map = (Map<String, String>)input.get(0); //to get all the keys of the first object.
      for (String key : map.keySet()){
        System.out.println("Key: " + key + " maps to value: " + map.get(key));
}
}

其中 User 是一个 POJO 类,包含所有关键字段及其 getter/setter 方法

但我得到:java.lang.ClassCastException: com.users.user.service.User 无法转换为 java.util.Map

谁能建议我如何从数组列表中获取键值对。就像我在列表中有大约 105 个对象,每个对象都有大约 8 个键值对。

【问题讨论】:

    标签: java arraylist hashmap pojo classcastexception


    【解决方案1】:

    这是存储在地图对象中的 2 个值的解决方案。

     Map<String,String> map = new HashMap<>();
             
        map.put(input.get(0).getFirstName(), input.get(0).getGroupName());
    

    如果您想存储所有值,我建议创建地图对象,例如:

      Map<String,User> map = new HashMap<>();
    

    其中字符串值在此示例键中。

    map.put("yourKey", input.get(0));
    

    【讨论】:

    • 所以,就像我的列表已经包含键和值一样。我需要用“userKey”创建另一个密钥吗?也像 input.get (0) 将有一个我需要值的键值对。就像我需要在 excel 中打印与其键对应的值
    • 我不确定我是否正确理解了您的问题。如果您在 List 中的项目已经包含某些键值,为什么将其存储在 Map 中?你可以像这样获得它:input.get(0).methodsOfPairGetKeyinput.get(0).methodsOfPairGetValue
    • 抱歉,我可能无法正确解释我的问题。实际上我需要获取存储在每个对象中的值。我不知道如何遍历每个对象以获取它们的值,这些值实际上是 Pojo 类的字段。如果你能在这方面帮助我。如果除了 input.get(0).getUserName() 还有其他方法。我可以简单地循环对象并获取每个字段的值。
    • 我不知道这是否是最合适的解决方案,但你可以尝试这样的方法:String a; int x; [....]for (int i = 0; i &lt; input.size(); i++){a = input.get(i).name; x = input.get(0).number; [....]}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 2016-04-29
    相关资源
    最近更新 更多