数组排序Arrays.sort方法的使用例子

  
  
  
  
  1. package test;  
  2.  
  3. import java.util.Arrays;  
  4. import java.util.Comparator;  
  5.  
  6. public class ArraySortDemo {  
  7. /**  
  8. * 整数型数组排序  
  9. */  
  10. public void sortIntArray() {  
  11. int[] arrayToSort = new int[] { 48, 5, 89, 80, 81, 23, 45, 16, 2 };  
  12. System.out.println("整数型数组排序,排序前:");  
  13. for (int i = 0; i < arrayToSort.length; i++){  
  14. System.out.print(arrayToSort[i]+",");  
  15. }  
  16. // 调用数组的静态排序方法sort  
  17. Arrays.sort(arrayToSort);  
  18. System.out.println();  
  19. System.out.println("排序后:");  
  20. for (int i = 0; i < arrayToSort.length; i++){  
  21. System.out.print(arrayToSort[i]+",");  
  22. }  
  23. }  
  24.  
  25. /**  
  26. * 字符型数组排序demo  
  27. */  
  28. public void sortStringArray() {  
  29. String[] arrayToSort = new String[] { "Oscar""Charlie""Ryan",  
  30. "Adam""David","aff","Aff" };  
  31. System.out.println();  
  32. System.out.println("字符型数组排序,排序前:");  
  33. for (int i = 0; i < arrayToSort.length; i++){  
  34. System.out.print(arrayToSort[i]+",");  
  35. }  
  36. System.out.println();  
  37. System.out.println("排序后:");  
  38. // 调用数组的静态排序方法sort  
  39. Arrays.sort(arrayToSort);  
  40.  
  41. for (int i = 0; i < arrayToSort.length; i++){  
  42. System.out.print(arrayToSort[i]+",");  
  43. }  
  44. }  
  45.  
  46. /**  
  47. * 对象数组排序demo  
  48. */  
  49. public void sortObjectArray() {  
  50. Dog o1 = new Dog("dog1", 1);  
  51. Dog o2 = new Dog("dog2", 4);  
  52. Dog o3 = new Dog("dog3", 5);  
  53. Dog o4 = new Dog("dog4", 2);  
  54. Dog o5 = new Dog("dog5", 3);  
  55. Dog[] dogs = new Dog[] { o1, o2, o3, o4, o5 };  
  56. System.out.println();  
  57. System.out.println("对象数组排序排序前:");  
  58. for (int i = 0; i < dogs.length; i++) {  
  59. Dog dog = dogs[i];  
  60. System.out.print(dog.getName()+"["+dog.getWeight()+"],");  
  61. }  
  62. Arrays.sort(dogs, new ByWeightComparator());  
  63. System.out.println();  
  64. System.out.println("排序后:");  
  65. for (int i = 0; i < dogs.length; i++) {  
  66. Dog dog = dogs[i];  
  67. System.out.print(dog.getName()+"["+dog.getWeight()+"],");  
  68. }  
  69. }  
  70.  
  71. public static void main(String[] args) {  
  72. ArraySortDemo t = new ArraySortDemo();  
  73. t.sortIntArray();  
  74. t.sortStringArray();  
  75. t.sortObjectArray();  
  76. }  
  77. }  
  78.  
  79. /**  
  80. * 定义了一个Dog类  
  81. */  
  82. class Dog {  
  83. private String name;  
  84. private int weight;  
  85.  
  86. public Dog(String nameint weight) {  
  87. this.setName(name);  
  88. this.weight = weight;  
  89. }  
  90.  
  91. public int getWeight() {  
  92. return weight;  
  93. }  
  94.  
  95. public void setWeight(int weight) {  
  96. this.weight = weight;  
  97. }  
  98.  
  99. public void setName(String name) {  
  100. this.name = name;  
  101. }  
  102.  
  103. public String getName() {  
  104. return name;  
  105. }  
  106. }  
  107.  
  108. /**  
  109. * 因为要对对象进行排序,所以要实现java.util.Comparator接口的compare(T o1, T o2)方法,在该方法中自定义排序算法。  
  110. */  
  111. class ByWeightComparator implements Comparator {  
  112. public final int compare(Object pFirst, Object pSecond) {  
  113. int aFirstWeight = ((Dog) pFirst).getWeight();  
  114. int aSecondWeight = ((Dog) pSecond).getWeight();  
  115. int diff = aFirstWeight - aSecondWeight;  
  116. if (diff > 0)  
  117. return 1;  
  118. if (diff < 0)  
  119. return -1;  
  120. else 
  121. return 0;  
  122. }  

运行结果:

整数型数组排序,排序前:
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 有改

你可能感兴趣的:(排序,方法,数组,例子,Arrays.sort)