Java 从ArrayList枚举子集

Java 从ArrayList枚举子集,java,arraylist,masking,Java,Arraylist,Masking,我有一个ArrayList存储.dat文件中的员工信息(姓名、员工分数和雇用日期)。我试图循环遍历ArrayList,将员工团队放在一起,使他们的集体得分超过20分。我试图通过屏蔽子集中的每一位来实现这一点 这是.dat文件: Francis Pelaez, 9, 3/7/1992 Marlo Frankel, 4, 4/4/2001 Suzanne Engelmann, 2, 5/20/1992 Gertrude Anderson, 5, 8/16/2009 Delmer Mickels, 3

我有一个
ArrayList
存储.dat文件中的员工信息(姓名、员工分数和雇用日期)。我试图循环遍历ArrayList,将员工团队放在一起,使他们的集体得分超过20分。我试图通过屏蔽子集中的每一位来实现这一点

这是.dat文件:

Francis Pelaez, 9, 3/7/1992
Marlo Frankel, 4, 4/4/2001
Suzanne Engelmann, 2, 5/20/1992
Gertrude Anderson, 5, 8/16/2009
Delmer Mickels, 3, 1/19/1994
public static ArrayList<Employee> loadEmployees() {

    ArrayList<Employee> employees = new ArrayList<Employee>();

    //load employees from employees.dat here...
    try (Scanner scanner = new Scanner(new FileInputStream("employees.dat"))) {
        while(scanner.hasNextLine()) {
            String line = scanner.nextLine();

            String[] tokens = line.split(", ");

            String fullName = tokens[0];
            String score = tokens[1];
            String dateHired = tokens[2];

            System.out.println("Full Name: " + fullName);
            System.out.println("Employee Score: " + score);
            System.out.println("Date Hired: " + dateHired);
            System.out.println("-----------------------------------");

            employees.add(new Employee(fullName, score, dateHired));
        }
        } catch (FileNotFoundException ex) {
            System.out.println("File not found: " + ex.getMessage());
        }       
    return employees;
}
在这里,我将员工从.dat文件加载到ArrayList中:

Francis Pelaez, 9, 3/7/1992
Marlo Frankel, 4, 4/4/2001
Suzanne Engelmann, 2, 5/20/1992
Gertrude Anderson, 5, 8/16/2009
Delmer Mickels, 3, 1/19/1994
public static ArrayList<Employee> loadEmployees() {

    ArrayList<Employee> employees = new ArrayList<Employee>();

    //load employees from employees.dat here...
    try (Scanner scanner = new Scanner(new FileInputStream("employees.dat"))) {
        while(scanner.hasNextLine()) {
            String line = scanner.nextLine();

            String[] tokens = line.split(", ");

            String fullName = tokens[0];
            String score = tokens[1];
            String dateHired = tokens[2];

            System.out.println("Full Name: " + fullName);
            System.out.println("Employee Score: " + score);
            System.out.println("Date Hired: " + dateHired);
            System.out.println("-----------------------------------");

            employees.add(new Employee(fullName, score, dateHired));
        }
        } catch (FileNotFoundException ex) {
            System.out.println("File not found: " + ex.getMessage());
        }       
    return employees;
}
publicstaticarraylistloademployees(){
ArrayList employees=新的ArrayList();
//在此处从employees.dat加载员工。。。
try(Scanner Scanner=newscanner(newfileinputstream(“employees.dat”)){
while(scanner.hasNextLine()){
字符串行=scanner.nextLine();
String[]tokens=line.split(“,”);
字符串fullName=tokens[0];
字符串分数=令牌[1];
字符串dateHired=tokens[2];
System.out.println(“全名:“+fullName”);
System.out.println(“员工分数:+分数”);
System.out.println(“雇用日期:+dateHired”);
System.out.println(“-----------------------------------------”;
添加(新员工(全名、分数、雇用日期));
}
}捕获(FileNotFoundException ex){
System.out.println(“未找到文件:+ex.getMessage());
}       
返回员工;
}
这是我的saveTeams()方法:

publicstaticvoidsaveteams(){
//加载employee对象,然后查询它们
ArrayList employees=loadEmployees();
//枚举所有员工子集并打印
//发现有集体雇员的任何团队
//评级高于20
int-allMasks=(1如果您不介意使用和Java 8:

Set<Employee> employees = loadEmployees();
Sets.powerSet(employees).stream()
    .filter(es -> 20 > es.stream().map(Employee::getScore).sum())
    .collect(Collectors.toList())
Set employees=loadEmployees();
Sets.powerSet(employees.stream())
.filter(es->20>es.stream().map(Employee::getScore).sum())
.collect(收集器.toList())

您应该以文本而不是截图的形式发布您的代码和输出。将您的代码(而不是图像)放入问题中(使用)。请发布您的代码,而不是截图!