按 java 中的不同值对 BufferedWriter 字符串输出进行排序
Sorting BufferedWriter string output by distinct value in java
我有这个功能:
它为我提供了我想要的所有数据,但我需要按工作时间对输出进行排序。我不知道如何对我得到的数据进行排序。
如有任何提示,我们将不胜感激。
raportBtn.setOnAction(event -> {
Writer writer=null;
try {
File file = new File("C:/user/raport.txt");
writer = new BufferedWriter(new FileWriter(file));
for(Employee emp:listOfEmployees){
String text = emp.getName() + " " + emp.getSurname()+ " " + emp.getRoom() + " " + emp.getWorkStart() + " " + emp.getWorkEnd() + " " + emp.getWorkTime() + "\n";
writer.write(text);
}
} catch (IOException e) {
e.printStackTrace();
} finally{
{
try{
writer.flush();
}catch(IOException e){
e.printStackTrace();
}
try{
writer.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
});
您只需要实现一个比较器即可。假设您想按年龄(升序)对列表进行排序。那么:
import java.util.Comparator;
public class EmployeesComparator implements Comparator<Employee> {
@Override
public int compare(Employee o1, Employee o2) {
return o1.age - o2.age;
}
}
那么,你可以这样使用它:
Collections.sort(listOfEmployees, new EmployeesComparator());
希望对您有所帮助!
我有这个功能:
它为我提供了我想要的所有数据,但我需要按工作时间对输出进行排序。我不知道如何对我得到的数据进行排序。
如有任何提示,我们将不胜感激。
raportBtn.setOnAction(event -> {
Writer writer=null;
try {
File file = new File("C:/user/raport.txt");
writer = new BufferedWriter(new FileWriter(file));
for(Employee emp:listOfEmployees){
String text = emp.getName() + " " + emp.getSurname()+ " " + emp.getRoom() + " " + emp.getWorkStart() + " " + emp.getWorkEnd() + " " + emp.getWorkTime() + "\n";
writer.write(text);
}
} catch (IOException e) {
e.printStackTrace();
} finally{
{
try{
writer.flush();
}catch(IOException e){
e.printStackTrace();
}
try{
writer.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
});
您只需要实现一个比较器即可。假设您想按年龄(升序)对列表进行排序。那么:
import java.util.Comparator;
public class EmployeesComparator implements Comparator<Employee> {
@Override
public int compare(Employee o1, Employee o2) {
return o1.age - o2.age;
}
}
那么,你可以这样使用它:
Collections.sort(listOfEmployees, new EmployeesComparator());
希望对您有所帮助!