java8 去重和排序
阿新 • • 發佈:2017-11-03
nbsp eof .com ring ima getname lar bool tid
/* Worker{id=1, name=‘曹操‘, gender=1, age=50, salary=50.56, workType=領導} Worker{id=2, name=‘典韋‘, gender=1, age=30, salary=30.56, workType=武將} Worker{id=3, name=‘荀彧‘, gender=1, age=40, salary=40.56, workType=謀士} Worker{id=4, name=‘劉備‘, gender=1, age=60, salary=60.56, workType=領導} */ privatedistinct()static void test4() { List<Worker> workerList = Arrays.asList( new Worker(1, "曹操", 1, 50, 50.56, WorkType.領導), new Worker(2, "典韋", 1, 30, 30.56, WorkType.武將), new Worker(3, "荀彧", 1, 40, 40.56, WorkType.謀士), new Worker(4, "劉備", 1, 60, 60.56, WorkType.領導),new Worker(4, "劉備", 1, 60, 60.56, WorkType.領導) ); workerList.stream().distinct() .forEach(System.out::println); }
/** * Created by meicai on 2017/11/2. */ public class Worker{ private int id; private String name; private int gender; privateWorkerint age; private Double salary; private WorkType workType; public Worker(int id, String name, int gender, int age, Double salary, WorkType workType) { this.id = id; this.name = name; this.gender = gender; this.age = age; this.salary = salary; this.workType = workType; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getGender() { return gender; } public void setGender(int gender) { this.gender = gender; } public Double getSalary() { return salary; } public void setSalary(Double salary) { this.salary = salary; } public WorkType getWorkType() { return workType; } public void setWorkType(WorkType workType) { this.workType = workType; } @Override public String toString() { return "Worker{" + "id=" + id + ", name=‘" + name + ‘\‘‘ + ", gender=" + gender + ", age=" + age + ", salary=" + salary + ", workType=" + workType + ‘}‘; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Worker)) return false; Worker worker = (Worker) o; if (getId() != worker.getId()) return false; if (getGender() != worker.getGender()) return false; if (getAge() != worker.getAge()) return false; if (!getName().equals(worker.getName())) return false; if (!getSalary().equals(worker.getSalary())) return false; return getWorkType() == worker.getWorkType(); } @Override public int hashCode() { int result = getId(); result = 31 * result + getName().hashCode(); result = 31 * result + getGender(); result = 31 * result + getAge(); result = 31 * result + getSalary().hashCode(); result = 31 * result + getWorkType().hashCode(); return result; } } enum WorkType{ 領導, 武將, 謀士, 士兵 }
java8 去重和排序