解释这些代码import java.util.TreeSet;public class Employee implements Comparable<Employee> { private int id; private String name; private double salary; public Employee(int id, String name, double salary) { this.id = id; this.name = name; this.salary = salary; } public int getId() { return id; } public String getName() { return name; } public double getSalary() { return salary; } @Override public int compareTo(Employee employee) { return Integer.compare(this.id, employee.id); } @Override public String toString() { return "Employee{" + "id=" + id + ", name='" + name + '\'' + ", salary=" + salary + '}'; } public static void main(String[] args) { TreeSet<Employee> employees = new TreeSet<>(); employees.add(new Employee(2, "Tom", 5000)); employees.add(new Employee(1, "Jerry", 6000)); employees.add(new Employee(3, "Bob", 4000)); System.out.println(employees); }}
时间: 2024-02-14 11:35:38 浏览: 28
这段代码定义了一个名为 Employee 的类,该类实现了 Comparable 接口,并重写了 compareTo 方法,以便在 TreeSet 中进行比较和排序。Employee 类有三个属性:id、name 和 salary,以及一个构造函数和三个 getter 方法。在 main 方法中,使用 TreeSet 对象 employees 存储了三个 Employee 对象,并打印输出了它们。由于 Employee 实现了 Comparable 接口,TreeSet 可以按照 id 属性值的大小将 Employee 对象进行排序,并输出排序后的结果。输出结果为:[Employee{id=1, name='Jerry', salary=6000.0}, Employee{id=2, name='Tom', salary=5000.0}, Employee{id=3, name='Bob', salary=4000.0}]。
相关问题
假设Employee类包含一个int型成员id,一个String型成员name,一个double型成员salary。如果要求Employee可按id值比较大小,请编写Employee类。编写程序,创建几个Employee对象,将它们存放到TreeSet中并输出。
好的,根据你的要求,我来为你编写Employee类,并在程序中使用TreeSet进行排序输出。
```java
import java.util.TreeSet;
public class Employee implements Comparable<Employee> {
private int id;
private String name;
private double salary;
public Employee(int id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
@Override
public int compareTo(Employee employee) {
return Integer.compare(this.id, employee.id);
}
@Override
public String toString() {
return "Employee{" +
"id=" + id +
", name='" + name + '\'' +
", salary=" + salary +
'}';
}
public static void main(String[] args) {
TreeSet<Employee> employees = new TreeSet<>();
employees.add(new Employee(2, "Tom", 5000));
employees.add(new Employee(1, "Jerry", 6000));
employees.add(new Employee(3, "Bob", 4000));
System.out.println(employees);
}
}
```
上述代码中,我们自定义了Employee类,并实现了Comparable接口,重写了compareTo方法,以id值为比较依据。然后在main方法中,我们创建了三个Employee对象,将它们存储到TreeSet中,并输出。程序运行结果如下:
```
[Employee{id=1, name='Jerry', salary=6000.0}, Employee{id=2, name='Tom', salary=5000.0}, Employee{id=3, name='Bob', salary=4000.0}]
```
可以看到,程序输出了按照id值排序后的Employee对象。
假设Employee类包含一个int型成员id,一个 String型成员name,一个double型成员salar y。如果要求Employee可按id值比较大小,请编写Employee类。编写程序,创建几个Employee对象,将已们存放到TreeSet中并输出。
好的,以下是Employee类的实现代码:
```java
import java.util.Objects;
public class Employee implements Comparable<Employee> {
private int id;
private String name;
private double salary;
public Employee(int id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
@Override
public int compareTo(Employee other) {
return Integer.compare(this.id, other.id);
}
@Override
public String toString() {
return "Employee{" +
"id=" + id +
", name='" + name + '\'' +
", salary=" + salary +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Employee)) return false;
Employee employee = (Employee) o;
return id == employee.id &&
Double.compare(employee.salary, salary) == 0 &&
Objects.equals(name, employee.name);
}
@Override
public int hashCode() {
return Objects.hash(id, name, salary);
}
}
```
其中,我们实现了Comparable接口,重写了compareTo方法,以便能够按照id值比较大小。
接下来,我们可以编写测试代码,创建几个Employee对象,将它们存放到TreeSet中并输出:
```java
import java.util.Set;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
Employee emp1 = new Employee(3, "Alice", 5000.0);
Employee emp2 = new Employee(1, "Bob", 6000.0);
Employee emp3 = new Employee(2, "Charlie", 7000.0);
Set<Employee> employees = new TreeSet<>();
employees.add(emp1);
employees.add(emp2);
employees.add(emp3);
for (Employee emp : employees) {
System.out.println(emp);
}
}
}
```
输出结果应该是:
```
Employee{id=1, name='Bob', salary=6000.0}
Employee{id=2, name='Charlie', salary=7000.0}
Employee{id=3, name='Alice', salary=5000.0}
```