Я начал программировать недавно, так что это может быть легко. У меня сложная задача. У меня есть объект с именем, датой рождения и номером телефона. Подобно объекту [0] [0] = «Джон» Объект [0] [1] = «10/10/2010» Объект [0] [0] = «900000000» с несколькими другими лицами. Поэтому мне сложно сортировать по имени и сохранять дату рождения и номер телефона вместе с именем. Спасибо.Сортировка по имени Объект [] [] Java
0
A
ответ
2
Логической задачей было бы создать класс Person
, который содержит имя, дату рождения и номер телефона. Затем вместо использования массива 2D Object, который не является безопасным по типу, используйте массив 1D - Person[]
.
Если ваш класс Person реализует Comparable<Person>
(с логикой сравнения, которая сравнивает имена), Arrays.sort()
сортирует массив по вашему имени.
0
Вот мой стандартный сортировка пример, в котором использовать Person объект:
/*
** Use the Collections API to sort a List for you.
**
** When your class has a "natural" sort order you can implement
** the Comparable interface.
**
** You can use an alternate sort order when you implement
** a Comparator for your class.
*/
import java.util.*;
public class Person implements Comparable<Person>
{
String name;
int age;
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public String toString()
{
return name + " : " + age;
}
/*
** Implement the natural order for this class
*/
public int compareTo(Person p)
{
return getName().compareTo(p.getName());
}
static class AgeComparator implements Comparator<Person>
{
public int compare(Person p1, Person p2)
{
return p1.getAge() - p2.getAge();
}
}
public static void main(String[] args)
{
List<Person> people = new ArrayList<Person>();
people.add(new Person("Homer", 38));
people.add(new Person("Marge", 35));
people.add(new Person("Bart", 15));
people.add(new Person("Lisa", 13));
// Sort by natural order
Collections.sort(people);
System.out.println("Sort by Natural order");
System.out.println("\t" + people);
// Sort by reverse natural order
Collections.sort(people, Collections.reverseOrder());
System.out.println("Sort by reverse natural order");
System.out.println("\t" + people);
// Use a Comparator to sort by age
Collections.sort(people, new Person.AgeComparator());
System.out.println("Sort using Age Comparator");
System.out.println("\t" + people);
// Use a Comparator to sort by descending age
Collections.sort(people, Collections.reverseOrder(new Person.AgeComparator()));
System.out.println("Sort using Reverse Age Comparator");
System.out.println("\t" + people);
}
}
Смежные вопросы
- 1. Сортировка списка Java по имени (целые числа)
- 2. java сортировка файлов по имени с точками
- 3. Сортировка файлов по имени
- 4. Сортировка TreeView по имени
- 5. Сортировка NSDocumentDirectory по имени
- 6. Сортировка FileSystemInfo [] по имени
- 7. Сортировка массива по имени
- 8. Сортировка изображений по имени
- 9. Сортировка JList по имени
- 10. Сортировка NSMutableDictionary по имени
- 11. Сортировка массива объектов по их имени (String)
- 12. Simple XML Сортировка по имени
- 13. Сортировка значений перечисления по имени
- 14. Сортировка контактов по контактному имени
- 15. Сортировка имени массива по фамилии?
- 16. Сортировка по дате и имени
- 17. Сортировка $ _FILES по имени файла
- 18. Сортировка имени книг по алфавиту
- 19. Сортировка изображений по имени файла
- 20. Сортировка Divs по имени ID
- 21. Сортировка по имени столбца строка
- 22. PHP Сортировка массива по имени
- 23. Сортировка файлов по имени в Java отличается от Windows Explorer
- 24. Сортировка и объект по параметру
- 25. Сортировка по индексу Java
- 26. Щелкните объект по имени класса
- 27. Initialise объект класса по имени
- 28. Объект запроса по имени класса
- 29. Сортировка имени книги по алфавиту (без интерфейсов сравнения или компаратора)
- 30. Сортировка файлов по имени, содержащим десятичные знаки