Java Tutorial/Collections/Collections Sort
Содержание
Keeping upper and lowercase letters together
<source lang="java">
import java.util.Arrays; import java.util.ruparator; public class MainClass {
public static void main(String[] args) { String[] sa = new String[] { "adf", "fdsa", "ASDF", "FSA", "r", "R" }; System.out.println("Before sorting: " + Arrays.asList(sa)); Arrays.sort(sa, new AlphabeticComparator()); System.out.println("After sorting: " + Arrays.asList(sa)); }
} class AlphabeticComparator implements Comparator {
public int compare(Object o1, Object o2) { String s1 = (String) o1; String s2 = (String) o2; return s1.toLowerCase().rupareTo(s2.toLowerCase()); }
} /**/</source>
Before sorting: [adf, fdsa, ASDF, FSA, r, R] After sorting: [adf, ASDF, fdsa, FSA, r, R]
Reversing Order
<source lang="java">
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class MainClass {
public static void main(String[] a) { List list = new ArrayList(); list.add("A"); list.add("C"); list.add("B"); Collections.sort(list, Collections.reverseOrder()); System.out.println(list); }
}</source>
[C, B, A]
Sorting a Collection containing user defined Objects
<source lang="java">
import java.util.Arrays; class Person implements Comparable<Person> {
public Person(String firstName, String surname) { this.firstName = firstName; this.surname = surname; } public String toString() { return firstName + " " + surname; } public int compareTo(Person person) { int result = surname.rupareTo(person.surname); return result == 0 ? firstName.rupareTo(((Person) person).firstName) : result; } private String firstName; private String surname;
} public class MainClass {
public static void main(String[] args) { Person[] authors = { new Person("A", "B"), new Person("C", "D"), new Person("E", "F"), new Person("Z", "Y"), new Person("X", "T"), new Person("O", "R") }; Arrays.sort(authors); System.out.println("\nThe cast is ascending sequence is:\n"); for (Person person : authors) { System.out.println(person); } }
}</source>
The cast is ascending sequence is: A B C D E F O R X T Z Y
Sorting a List
<source lang="java">
import java.util.Arrays; import java.util.Collections; import java.util.List; public class MainClass {
public static void main(String args[]) throws Exception { List list = Arrays.asList("a","c","b"); Collections.sort(list); for (int i = 0, n = list.size(); i < n; i++) { if (i != 0) System.out.print(", "); System.out.print(list.get(i)); } System.out.println(); }
}</source>
a, b, c