Пример 1
Кода -копия выглядит следующим образом:
пакет com.yonyou.test;
импортировать java.util.arraylist;
импортировать java.util.collections;
Импорт java.util.comparator;
импортировать java.util.list;
открытый тест класса {
public static void main (string [] args) {
Студент Zlj = новый студент ("Ding xiaoyu", 21);
Студент dxy = новый студент ("Zhao Si", 22);
Студент CJC = новый студент ("Zhang San", 11);
Студент LGC = новый студент («Лю у», 19);
Список <Tlade> StudentList = new ArrayList <toodTude> ();
StudentList.Add (ZLJ);
StudentList.Add (dxy);
StudentList.Add (CJC);
StudentList.Add (LGC);
System.out.println («Сортируется по году:»);
Collections.sort (StudentList, New Sortbyage ());
для (студент -студент: студент list) {
System.out.println (student.getName () + " /" + study.getage ());
}
System.out.println ("==========");
System.out.println ("сортирован по имени");
Collections.sort (StudentList, New SortbyName ());
для (студент -студент: студент list) {
System.out.println (student.getName () + " /" + study.getage ());
}
}
}
класс Sortbyage реализует компаратор {
public int compare (Object O1, Object O2) {
Студент S1 = (студент) O1;
Студент S2 = (студент) O2;
if (s1.getage ()> s2.getage ())
возврат 1;
else if (s1.getage () == s2.getage ()) {
возврат 0;
}
возврат -1;
}
}
класс sortbyname реализует компаратор {
public int compare (Object O1, Object O2) {
Студент S1 = (студент) O1;
Студент S2 = (студент) O2;
if (s1.getName (). Compareto (s2.getName ()) <0)
возврат -1;
else if (s1.getName (). CompareTo (s2.getName ())> 0) {
возврат 1;
}
возврат 0;
}
}
классный студент {
частный int возраст;
Приватное название строки;
public int getage () {
Возврат возраст;
}
public void setage (int age) {
this.age = возраст;
}
public String getName () {
вернуть имя;
}
public void setName (string name) {
this.name = name;
}
Общественный студент (название строки, int age) {
this.age = возраст;
this.name = name;
}
}
Пример 2
Я часто сталкиваюсь с проблемами с сортировкой массива.
На самом деле, эта ситуация часто встречается.
Исходный код приведен ниже:
1: Файл человека.
Кода -копия выглядит следующим образом:
публичный класс человек {
String name;
int возраст;
публичный человек (название строки, int age) {
this.name = name;
this.age = возраст;
}
public int getage () {
Возврат возраст;
}
public void setage (int age) {
this.age = возраст;
}
public String getName () {
вернуть имя;
}
public void setName (string name) {
this.name = name;
}
}
2: mycomparator.java
Кода -копия выглядит следующим образом:
// Реализовать интерфейс компаратора, то есть определить правила сортировки, вы можете определить практически любые правила
пакет com.infoearth;
Импорт java.util.*;
открытый класс MyComparator реализует компаратор {
public int compare (Object O1, Object O2) {
Человек P1 = (человек) O1;
Человек P2 = (человек) O2;
if (p1.age <p2.age)
возврат 1;
еще
возврат 0;
}
}
3: listsort.java
Кода -копия выглядит следующим образом:
пакет com.infoearth;
импортировать java.util.arraylist;
импортировать java.util.collections;
Импорт java.util.comparator;
Общественный класс Listsort {
public static void main (string [] args) {
ArrayList List = new ArrayList ();
list.add (новый человек ("lcl", 28));
list.add (новый человек ("fx", 23));
list.add (новый человек ("wqx", 29));
Comporator comp = new MyComparator ();
Collections.sort (список, Comp);
для (int i = 0; i <list.size (); i ++) {
Человек p = (человек) list.get (i);
System.out.println (p.getName ());
}
}
}
Конечно, если ваш список обернут в основной тип или строку, просто collections.sort (список);