【发布时间】:2017-08-28 19:50:50
【问题描述】:
我有一个名为 Employee 的类,它具有以下内容:firstName、lastName、salary 和 position,我想练习流方法并操作对象中的数据,就像我想计算对象中有多少个大写字母一样员工的名字,但我的问题是我将对象作为一个整体对象获取,如果我想使用 foreach 方法循环遍历它以获取我的对象的一个实例,之后我将无能为力,因为 foreach 是终端操作,所以如何遍历列表获取每个员工的名字并检查它包含多少个大写字母。 这是我一直在尝试做的事情:
public class Main {
public static void main(String[] args) {
Employee emp = new Employee();
List<Employee> list = new ArrayList<>();
emp.setFirstName("John");
emp.setLastName("Mark");
emp.setPosition("dev");
emp.setSalary(1000);
list.add(emp);
list.stream().forEach(i -> i.getFirstName());
System.out.println(isLower(list));
}
public static String isLower(List<Employee> empList) {
System.out.println("I am here");
Stream<Employee> stream = empList.stream();
return stream.map(i -> i.getFirstName()).toString();
}
static boolean isDigit(char[] ch) {
System.out.println("I am here2");
for (char c : ch)
return c >= '0' && c <= '9';
return false;
}
static boolean isLowerCase(char[] ch) {
for (char c : ch)
return c >= 'a' && c <= 'z';
return false;
}
static boolean isUpperCase(char[] ch) {
for (char c : ch)
return c >= 'A' && c <= 'Z';
return false;
}
}
很抱歉提出这么愚蠢的问题,但我是 Java 初学者并正在努力学习
【问题讨论】:
-
注意:
list.stream().forEach(i -> i.getFirstName());基本上什么都不做,因为流方法从不修改底层数据结构。 -
您希望
Stream.toString()会返回什么? -
isDigit()和isLowerCase()和isUpperCase()的相关性是什么? -
@mc10 但我仍然没有尝试在这里修改任何内容,我只是想获得名字
-
@shmosel 我仍然没有使用这些方法,但如果字符串(firstName)包含数字或大写或字母,我想使用它们返回 true
标签: java list dictionary foreach java-stream