Arrays.sort的用法

Arrays.sort用法 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], 地方 List list = new ArrayList() ; list.add("abcd") ; list.add("abdc") ; list.add("aadf") ; list.add("aabf") ; /*将list转为数组*/ String[] strs = new String[list.size()] ; list.toArray(strs) ; /*排序,只排2<=索引<4之间的数据*/ Arrays.sort(strs,2,4) ; for(String str : strs){ System.out.println(str) ; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值