- package test;
- import java.util.Arrays;
- import java.util.Comparator;
- public class ArraySortDemo {
- /**
- * 整数型数组排序
- */
- public void sortIntArray() {
- int[] arrayToSort = new int[] { 48, 5, 89, 80, 81, 23, 45, 16, 2 };
- System.out.println("整数型数组排序,排序前:");
- for (int i = 0; i < arrayToSort.length; i++){
- System.out.print(arrayToSort[i]+",");
- }
- // 调用数组的静态排序方法sort
- Arrays.sort(arrayToSort);
- System.out.println();
- System.out.println("排序后:");
- for (int i = 0; i < arrayToSort.length; i++){
- System.out.print(arrayToSort[i]+",");
- }
- }
- /**
- * 字符型数组排序demo
- */
- public void sortStringArray() {
- String[] arrayToSort = new String[] { "Oscar", "Charlie", "Ryan",
- "Adam", "David","aff","Aff" };
- System.out.println();
- System.out.println("字符型数组排序,排序前:");
- for (int i = 0; i < arrayToSort.length; i++){
- System.out.print(arrayToSort[i]+",");
- }
- System.out.println();
- System.out.println("排序后:");
- // 调用数组的静态排序方法sort
- Arrays.sort(arrayToSort);
- for (int i = 0; i < arrayToSort.length; i++){
- System.out.print(arrayToSort[i]+",");
- }
- }
- /**
- * 对象数组排序demo
- */
- public void sortObjectArray() {
- Dog o1 = new Dog("dog1", 1);
- Dog o2 = new Dog("dog2", 4);
- Dog o3 = new Dog("dog3", 5);
- Dog o4 = new Dog("dog4", 2);
- Dog o5 = new Dog("dog5", 3);
- Dog[] dogs = new Dog[] { o1, o2, o3, o4, o5 };
- System.out.println();
- System.out.println("对象数组排序排序前:");
- for (int i = 0; i < dogs.length; i++) {
- Dog dog = dogs[i];
- System.out.print(dog.getName()+"["+dog.getWeight()+"],");
- }
- Arrays.sort(dogs, new ByWeightComparator());
- System.out.println();
- System.out.println("排序后:");
- for (int i = 0; i < dogs.length; i++) {
- Dog dog = dogs[i];
- System.out.print(dog.getName()+"["+dog.getWeight()+"],");
- }
- }
- public static void main(String[] args) {
- ArraySortDemo t = new ArraySortDemo();
- t.sortIntArray();
- t.sortStringArray();
- t.sortObjectArray();
- }
- }
- /**
- * 定义了一个Dog类
- */
- class Dog {
- private String name;
- private int weight;
- public Dog(String name, int weight) {
- this.setName(name);
- this.weight = weight;
- }
- public int getWeight() {
- return weight;
- }
- public void setWeight(int weight) {
- this.weight = weight;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getName() {
- return name;
- }
- }
- /**
- * 因为要对对象进行排序,所以要实现java.util.Comparator接口的compare(T o1, T o2)方法,在该方法中自定义排序算法。
- */
- class ByWeightComparator implements Comparator {
- public final int compare(Object pFirst, Object pSecond) {
- int aFirstWeight = ((Dog) pFirst).getWeight();
- int aSecondWeight = ((Dog) pSecond).getWeight();
- int diff = aFirstWeight - aSecondWeight;
- if (diff > 0)
- return 1;
- if (diff < 0)
- return -1;
- else
- return 0;
- }
- }
运行结果:
整数型数组排序,排序前:
48,5,89,80,81,23,45,16,2,
排序后:
2,5,16,23,45,48,80,81,89,
字符型数组排序,排序前:
Oscar,Charlie,Ryan,Adam,David,aff,Aff,
排序后:
Adam,Aff,Charlie,David,Oscar,Ryan,aff,
对象数组排序排序前:
dog1[1],dog2[4],dog3[5],dog4[2],dog5[3],
排序后:
dog1[1],dog4[2],dog5[3],dog2[4],dog3[5],
原文:http://hi.baidu.com/dobodo/blog/item/53d5c990b1ed2885a877a4a8.html 有改