Java入职时间升序排列
时间: 2023-08-04 15:07:11 浏览: 235
您可以使用Java中的Collections.sort()方法来对入职时间升序排列。假设您有一个名为employeeList的List<Employee>对象,其中Employee类有一个名为hireDate的Date类型的属性,您可以使用以下代码进行排序:
```
Collections.sort(employeeList, new Comparator<Employee>() {
public int compare(Employee e1, Employee e2) {
return e1.getHireDate().compareTo(e2.getHireDate());
}
});
```
这将根据每个Employee对象的hireDate属性进行排序,将employeeList按照入职时间升序排列。
相关问题
设计一串java代码,完成以下功能 (1封装一个工人类,有变量:姓名、年龄、工资、入职时间,有work方法。(2)创建一个工人数组,在数组中增加如下四个工人,基本信息如下: 姓名年龄工资入职时间 张3 183000 2016年03月26日 李4 2535002017年03月26日 王5 2232002016年07月26日 张6 18 3000 2016年03月26日 (3)将字符串”姓名:赵6,年龄∶24,工资: 3300,入职时间:2017年04月15日”进行分割,赋值给一个工人类对象,并且将原数组中的张6信息替换掉。 (4利用增强for 循环遍历,输出数组中所有工人的信息(5)输出工资最高的工人的姓名。 (6)按工资对工人进行升序排列,计算排序时间并输出集合中所有工人的信息。(7)输出所有姓“张r的工人信息 (8)输出2017年入职的工人信息。
以下是完成上述功能的Java代码:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
class Worker {
private String name;
private int age;
private double salary;
private Date hireDate;
public Worker(String name, int age, double salary, String hireDate) throws ParseException {
this.name = name;
this.age = age;
this.salary = salary;
this.hireDate = new SimpleDateFormat("yyyy年MM月dd日").parse(hireDate);
}
public void work() {
System.out.println(name + " is working.");
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public double getSalary() {
return salary;
}
public Date getHireDate() {
return hireDate;
}
@Override
public String toString() {
return "姓名:" + name + ",年龄:" + age + ",工资:" + salary + ",入职时间:" +
new SimpleDateFormat("yyyy年MM月dd日").format(hireDate);
}
}
public class Main {
public static void main(String[] args) {
try {
Worker[] workers = new Worker[4];
workers[0] = new Worker("张3", 18, 3000, "2016年03月26日");
workers[1] = new Worker("李4", 25, 3500, "2017年03月26日");
workers[2] = new Worker("王5", 22, 3200, "2016年07月26日");
workers[3] = new Worker("张6", 18, 3000, "2016年03月26日");
String newWorkerInfo = "姓名:赵6,年龄:24,工资: 3300,入职时间:2017年04月15日";
String[] infoArray = newWorkerInfo.split(",");
String name = infoArray[0].split(":")[1];
int age = Integer.parseInt(infoArray[1].split(":")[1]);
double salary = Double.parseDouble(infoArray[2].split(":")[1]);
String hireDate = infoArray[3].split(":")[1];
workers[3] = new Worker(name, age, salary, hireDate);
// 遍历输出所有工人信息
for (Worker worker : workers) {
System.out.println(worker);
}
// 输出工资最高的工人的姓名
double maxSalary = Double.MIN_VALUE;
String maxSalaryWorkerName = "";
for (Worker worker : workers) {
if (worker.getSalary() > maxSalary) {
maxSalary = worker.getSalary();
maxSalaryWorkerName = worker.getName();
}
}
System.out.println("工资最高的工人姓名:" + maxSalaryWorkerName);
// 按工资升序排序并输出所有工人信息
Arrays.sort(workers, Comparator.comparingDouble(Worker::getSalary));
for (Worker worker : workers) {
System.out.println(worker);
}
// 输出姓“张”的工人信息
System.out.println("姓“张”的工人信息:");
for (Worker worker : workers) {
if (worker.getName().startsWith("张")) {
System.out.println(worker);
}
}
// 输出2017年入职的工人信息
System.out.println("2017年入职的工人信息:");
for (Worker worker : workers) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(worker.getHireDate());
if (calendar.get(Calendar.YEAR) == 2017) {
System.out.println(worker);
}
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
```
运行以上代码,可以得到预期的结果。
阅读全文