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

如何使用Java流和Lambda表达式访问数组中保存的hashmap数据

壤驷彦
2023-03-14

我在学Java溪流。我有一段使用传统for循环读取HashMap数组的代码:

public void getData() {
    JSONParser objJSONParser = new JSONParser();
    try {
        Object obj = objJSONParser.parse(new FileReader(".\\Resources\\TestData\\LoginTestData.json"));
        JSONObject jsonObj = (JSONObject) obj;
        JSONArray loginCredentialsArray = (JSONArray)jsonObj.get("AdminLogin");     
        
        for(int i=0; i<loginCredentialsArray.size(); i++) 
        {
            JSONObject adminCredentials = (JSONObject)loginCredentialsArray.get(i);
            String username = (String) adminCredentials.get("UserName");
            String password = (String) adminCredentials.get("Password");
            System.out.println("username= " + username);
            System.out.println("password= " + password);
        }
        
    } catch (IOException | ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        logger.fatal("Exception in 'JSONReader' class: " + e.getMessage());
    }
}

“for”循环的Java流和Lambda代码是什么?

共有1个答案

宇文德明
2023-03-14

您可以使用IntStream,例如,以这种方式:

IntStream.range(0, loginCredentialsArray.size()).forEach(i -> {
  JSONObject adminCredentials = (JSONObject)loginCredentialsArray.get(i);
  ...
}); 

或者这样说:

IntStream.range(0, loginCredentialsArray.size())
.map(i -> (JSONObject)loginCredentialsArray.get(i))
.forEach(adminCredentials -> {
  String username = (String) adminCredentials.get("UserName");
  String password = (String) adminCredentials.get("Password");
  ...
}); 
 类似资料:
  • 主要内容:作为参数使用Lambda表达式,访问变量,方法引用在《 Java Lambda表达式》和《 Java Lambda表达式的3种简写方式》一节中我们了解了 Java Lambda 的概念并可以在匿名类的场合使用 Lambda 语法进行简单替换。本节主要介绍在 Java 中如何使用 Lambda 表达式。 作为参数使用Lambda表达式 Lambda 表达式一种常见的用途就是作为参数传递给方法,这需要声明参数的类型声明为函数式接口类型。示例代码如下:

  • 本文向大家介绍java使用hashMap缓存保存数据的方法,包括了java使用hashMap缓存保存数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java使用hashMap缓存保存数据的方法。分享给大家供大家参考,具体如下: 更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇

  • 本文向大家介绍Java中如何使用lambda表达式实现ToLongFunction ?,包括了Java中如何使用lambda表达式实现ToLongFunction ?的使用技巧和注意事项,需要的朋友参考一下 ToLongFunction<T>是中定义的函数接口java.util.function函数包裹。此函数接口接受引用类型作为输入,并生成长值结果。ToLongFunction<T>接口可用作l

  • 问题内容: 我来自OOP背景,尝试学习python。我使用的函数使用lambda表达式返回列表中具有最大类型的实例。 该函数正确地返回具有maximum类型的实例。我对以下三件事感到困惑: 该功能如何工作?它正在采取什么论点?我查看了文档,但听不懂。 max函数中关键字的用途是什么?我知道它也用于功能上下文 lambda表达式的含义?如何阅读它们?它们如何工作? 这些都是非常笨拙的概念性问题,但可

  • 本文向大家介绍Java中如何使用 lambda 表达式中的 return 语句,包括了Java中如何使用 lambda 表达式中的 return 语句的使用技巧和注意事项,需要的朋友参考一下 return语句不是lambda表达式中的表达式。我们必须用大括号({})括住语句。但是,我们不必将void方法调用括在大括号中。方法的返回类型,其中return语句中使用的lambda表达式必须是函数接口。

  • 我通常打印我的数组列表,例如 但我无法将此应用于普通数组()。 如何将此表达式应用于普通数组?

  • 我在尝试使用lambda表达式时遇到了这个错误。