如何在 Java 中使用 lambda 打印字符串数组列表
How to print List of String array array using lambda in Java
这是我的代码:
List<String[]> salaries = getSalariesByMonth();
//I am using the old way to print the data
for (String[] obj : rates) {
System.out.println("User name: "obj[0]+"--"+"Salary: "+obj[1]); //obj[0] is NAME, obj[1] is SALARY
}
//I am trying to use this way to print the data but unable to do so.
salaries.forEach(s-> System.out.println("print NAME and SALARY"));
如何使用 Lambda 打印包含字符串数组的列表。提前谢谢你。
要将 for-each 循环转换为 forEach
调用,一般模式为:
for (final var x : xs) {
statements;
}
// becomes:
xs.forEach(x -> { statements; });
// with a single statement, braces are optional:
xs.forEach(x -> statement);
(x, y) -> { statements; }
形式的 lambda 大部分等同于以下形式的方法:
… yourMethod(final … x, final … y) {
statements;
}
Return 类型和参数类型在遇到 lambda 时由编译器自动推断。
所以在你的情况下是:
salaries.forEach(obj -> System.out.println("User name: "+obj[0]+"--"+"Salary: "+obj[1]));
您还可以使用流首先将每个对象映射到字符串表示形式,然后在终端操作中输出每个项目:
salaries.stream()
.map(obj -> "User name: "+obj[0]+"--"+"Salary: "+obj[1])
.forEach(s -> System.out.println(s));
由于 System.out.println
只需要一个与 lambda 参数匹配的参数,因此可以将其替换为 method reference,这在某些情况下更具可读性:.forEach(System.out::println)
salaries.stream()
.map(salary -> String.format("User name: %s -- Salary: %s", salary[0], salary[1]))
.forEach(System.out::println);
这是我的代码:
List<String[]> salaries = getSalariesByMonth();
//I am using the old way to print the data
for (String[] obj : rates) {
System.out.println("User name: "obj[0]+"--"+"Salary: "+obj[1]); //obj[0] is NAME, obj[1] is SALARY
}
//I am trying to use this way to print the data but unable to do so.
salaries.forEach(s-> System.out.println("print NAME and SALARY"));
如何使用 Lambda 打印包含字符串数组的列表。提前谢谢你。
要将 for-each 循环转换为 forEach
调用,一般模式为:
for (final var x : xs) {
statements;
}
// becomes:
xs.forEach(x -> { statements; });
// with a single statement, braces are optional:
xs.forEach(x -> statement);
(x, y) -> { statements; }
形式的 lambda 大部分等同于以下形式的方法:
… yourMethod(final … x, final … y) {
statements;
}
Return 类型和参数类型在遇到 lambda 时由编译器自动推断。
所以在你的情况下是:
salaries.forEach(obj -> System.out.println("User name: "+obj[0]+"--"+"Salary: "+obj[1]));
您还可以使用流首先将每个对象映射到字符串表示形式,然后在终端操作中输出每个项目:
salaries.stream()
.map(obj -> "User name: "+obj[0]+"--"+"Salary: "+obj[1])
.forEach(s -> System.out.println(s));
由于 System.out.println
只需要一个与 lambda 参数匹配的参数,因此可以将其替换为 method reference,这在某些情况下更具可读性:.forEach(System.out::println)
salaries.stream()
.map(salary -> String.format("User name: %s -- Salary: %s", salary[0], salary[1]))
.forEach(System.out::println);