Sorting an Array
1. 數(shù)字排序? int[] intArray = new int[] { 4, 1, 3, -23 };
Arrays.sort(intArray);
輸出: [-23, 1, 3, 4]
2. 字符串排序,先大寫后小寫 String[] strArray = new String[]{ "z", "a", "C" };
Arrays.sort(strArray);
輸出: [C, a, z]
3. 嚴格按字母表順序排序,也就是忽略大小寫排序 Case-insensitive sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
輸出: [a, C, z]
4. 反向排序, Reverse-order sort
Arrays.sort(strArray, Collections.reverseOrder());
輸出:[z, a, C]
5. 忽略大小寫反向排序 Case-insensitive reverse-order sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
Collections.reverse(Arrays.asList(strArray));
輸出: [z, C, a]
對于整數(shù)、字符串排序,jdk提供了默認的實現(xiàn),如果要對一個對象數(shù)組排序,則要自己實現(xiàn)java.util.Comparator接口。
示例:
運行結果:
1. 數(shù)字排序? int[] intArray = new int[] { 4, 1, 3, -23 };
Arrays.sort(intArray);
輸出: [-23, 1, 3, 4]
2. 字符串排序,先大寫后小寫 String[] strArray = new String[]{ "z", "a", "C" };
Arrays.sort(strArray);
輸出: [C, a, z]
3. 嚴格按字母表順序排序,也就是忽略大小寫排序 Case-insensitive sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
輸出: [a, C, z]
4. 反向排序, Reverse-order sort
Arrays.sort(strArray, Collections.reverseOrder());
輸出:[z, a, C]
5. 忽略大小寫反向排序 Case-insensitive reverse-order sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
Collections.reverse(Arrays.asList(strArray));
輸出: [z, C, a]
對于整數(shù)、字符串排序,jdk提供了默認的實現(xiàn),如果要對一個對象數(shù)組排序,則要自己實現(xiàn)java.util.Comparator接口。
示例:
import java.util.Arrays; import java.util.Comparator; class Cat { private String name; private float weight; public Cat(String name, float weight) { setName(name); setWeight(weight); } public Cat() { } public String getName() { return name; } public float getWeight() { return weight; } public void setName(String name) { this.name = name; } public void setWeight(float weight) { this.weight = weight; } } //創(chuàng)建一個比較器 class ByWeightComparator implements Comparator { public final int compare(Object c1, Object c2) { if(((Cat)c1).getWeight() > ((Cat)c2).getWeight()) { return 1; } else if(((Cat)c1).getWeight() == ((Cat)c2).getWeight()) { return 0; } else return -1; } } public class CatArrSortTest { public static void main(String[] args) { Cat c1 = new Cat("w", 100); Cat c2 = new Cat("d", 50); Cat c3 = new Cat("a", 80); Cat[] c = new Cat[]{c1, c2, c3}; System.out.println("排序前:"); for( Cat c4 : c) { System.out.print(c4.getName() + "," + c4.getWeight() + "\t"); } Arrays.sort(c, new ByWeightComparator()); System.out.println("\n排序后:"); for( Cat c4 : c) { System.out.print(c4.getName() + "," + c4.getWeight() + "\t"); } } }
運行結果:
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
