1. Emp.java
public class Emp {
    private String name;
    private int age;
    private String gender;
    private String school;
    
    public Emp(String name, int age, String gender, String school) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.school = school;
    }
    
    public String getName() {
        return name;
    }
    
    public int getAge() {
        return age;
    }
    
    public String getGender() {
        return gender;
    }
    
    public String getSchool() {
        return school;
    }
}
  1. Main.java
import java.io.*;
import java.util.*;

public class Main {
    private static final String[] SCHOOLS = {"虹猫", "农大", "湘南", "中南大学", "软件学院"};
    
    public static void main(String[] args) throws IOException {
        List<Emp> empList = new ArrayList<>();
        Map<String, Emp> empMap = new HashMap<>();
        
        // 创建300条数据
        for (int i = 0; i < 300; i++) {
            String name = generateName();
            int age = generateAge();
            String gender = generateGender();
            String school = generateSchool();
            
            Emp emp = new Emp(name, age, gender, school);
            empList.add(emp);
            empMap.put(name, emp);
        }
        
        // 写入文件
        try (PrintWriter writer = new PrintWriter(new FileWriter("emp.txt"))) {
            for (Emp emp : empList) {
                writer.println(emp.getName() + "," + emp.getAge() + "," + emp.getGender() + "," + emp.getSchool());
            }
        }
        
        // 读取文件
        try (BufferedReader reader = new BufferedReader(new FileReader("emp.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                String[] parts = line.split(",");
                Emp emp = new Emp(parts[0], Integer.parseInt(parts[1]), parts[2], parts[3]);
                empList.add(emp);
                empMap.put(emp.getName(), emp);
            }
        }
        
        // 按年龄排序
        Collections.sort(empList, Comparator.comparingInt(Emp::getAge));
        
        // 中南大学信息
        System.out.println("中南大学信息:");
        empList.stream()
            .filter(emp -> emp.getSchool().equals("中南大学"))
            .forEach(emp -> System.out.println(emp.getName() + " " + emp.getAge() + " " + emp.getGender() + " " + emp.getSchool()));
        System.out.println();
        
        // 年龄小于20岁的(不要第一个)
        System.out.println("年龄小于20岁的(不要第一个):");
        empList.stream()
            .filter(emp -> emp.getAge() < 20)
            .skip(1)
            .forEach(emp -> System.out.println(emp.getName() + " " + emp.getAge() + " " + emp.getGender() + " " + emp.getSchool()));
        System.out.println();
        
        // 名字中只有两个字符的
        System.out.println("名字中只有两个字符的:");
        empList.stream()
            .filter(emp -> emp.getName().length() == 2)
            .forEach(emp -> System.out.println(emp.getName() + " " + emp.getAge() + " " + emp.getGender() + " " + emp.getSchool()));
        System.out.println();
        
        // 所有的大学名字
        System.out.println("所有的大学名字:");
        Set<String> schools = empList.stream()
            .map(Emp::getSchool)
            .collect(Collectors.toSet());
        System.out.println(schools);
        System.out.println();
        
        // 来自虹猫的学院(按年龄倒序)
        System.out.println("来自虹猫的学院(按年龄倒序):");
        empList.stream()
            .filter(emp -> emp.getSchool().equals("虹猫"))
            .sorted(Comparator.comparingInt(Emp::getAge).reversed())
            .forEach(emp -> System.out.println(emp.getName() + " " + emp.getAge() + " " + emp.getGender() + " " + emp.getSchool()));
        System.out.println();
        
        // 湘南学生的人数
        long count = empList.stream()
            .filter(emp -> emp.getSchool().equals("湘南"))
            .count();
        System.out.println("湘南学生的人数:" + count);
        System.out.println();
        
        // 农大年龄最大的学生
        Optional<Emp> maxAgeEmp = empList.stream()
            .filter(emp -> emp.getSchool().equals("农大"))
            .max(Comparator.comparingInt(Emp::getAge));
        System.out.println("农大年龄最大的学生:" + maxAgeEmp.orElse(null));
        System.out.println();
        
        // 农大最小的学生
        Optional<Emp> minAgeEmp = empList.stream()
            .filter(emp -> emp.getSchool().equals("农大"))
            .min(Comparator.comparingInt(Emp::getAge));
        System.out.println("农大最小的学生:" + minAgeEmp.orElse(null));
        System.out.println();
        
        // 学生名字长度为4的所有学生信息
        System.out.println("学生名字长度为4的所有学生信息:");
        empList.stream()
            .filter(emp -> emp.getName().length() == 4)
            .forEach(emp -> System.out.println(emp.getName() + " " + emp.getAge() + " " + emp.getGender() + " " + emp.getSchool()));
        System.out.println();
    }
    
    private static String generateName() {
        Random random = new Random();
        char c = (char) (random.nextInt(26) + 'A');
        int num = random.nextInt(1000);
        return c + String.format("%04d", num);
    }
    
    private static int generateAge() {
        Random random = new Random();
        return random.nextInt(16) + 15;
    }
    
    private static String generateGender() {
        Random random = new Random();
        return random.nextBoolean() ? "男" : "女";
    }
    
    private static String generateSchool() {
        Random random = new Random();
        return SCHOOLS[random.nextInt(SCHOOLS.length)];
    }
}
Java 实体类创建与数据操作:生成 300 条员工信息并进行分析

原文地址: https://www.cveoy.top/t/topic/oLzv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录