У меня есть арраист, содержащий имена, возрасты, зарплаты и т. Д.Сортировать имена в Java ArrayList?
Я хочу отсортировать список по названию.
Ниже то, что я имею в своем классе:
//Sort by Name
public ArrayList<Employee> sortByName()
{
Collections.sort(employees);
return employees;
}
У меня есть компаратор (который я не уверен, что даже используется) здесь:
import java.util.*;
public class EmployeeNameComparator implements Comparator<Employee>
{
ArrayList<Employee> employees = new ArrayList<Employee>();
//METHODS
//Name Compare
public int compare(Employee object1, Employee object2)
{
return object1.getName().compareTo(object2.getName());
}
}
И здесь являются соответствующие части тестера, которые я сделал:
CompanyDataBase database = new CompanyDataBase();
database.addEmployee(new Employee("John James", 34, 45000));
database.addEmployee(new Employee("Josie Gibson", 19, 19000));
database.addEmployee(new Employee("Luke Marsden", 28, 30000));
database.addEmployee(new Manager("Aaron Morgan", 28, 44000, 5500));
System.out.println("\n\nSORT BY NAME");
//Collections.sort(database.getEmployees());
database.sortByName();
for(Employee currEmployee: database.getEmployees())
{
System.out.println(currEmployee.getDescription());
}
Я пробовал это множество путей, но ничто не кажется рабочим g, кто-нибудь знает, где я ошибаюсь или как это работает? Благодарю.
Смотрите перегруженный 'Collections.sort (List, компаратор)' метод. –
Возможный дубликат [Сортировка коллекции объектов] (http://stackoverflow.com/questions/1206073/sorting-a-collection-of-objects) –