java List对对象的属性排序

时间:2022-01-07 21:32:00

1、对排序对象实现Comparable接口,然后调用Collections.sort(list)

2、实现Comparator接口类cp,调用Collections.sort(list,cp)

java实现

  1. import java.util.List;  
  2. import java.util.ArrayList;  
  3. import java.util.Locale;  
  4. import java.util.Collections;  
  5. import java.text.Collator;  
  6.   
  7. public class StringShortWithCollator {  
  8.     public static void main(String[] args) {  
  9.          List<String> fruits = new ArrayList<String>();  
  10.             fruits.add("caffeine");  
  11.             fruits.add("café");  
  12.             fruits.add("cafeteria");  
  13.             Collections.sort(fruits);  
  14.             for (int i = 0; i < fruits.size(); i++) {  
  15.                 String fruit = fruits.get(i);  
  16.   
  17.                 System.out.println("orignal sort = " + fruit);  
  18.             }  
  19.             // 输出  
  20.             // orignal sort = cafeteria  
  21.             // orignal sort = caffeine  
  22.             // orignal sort = café  
  23.               
  24.             // Calendar cal = Calendar.getInstance(); // 使用默认的时区和locale  
  25.             // 指定为美国locale  
  26.             Collator collator = Collator.getInstance(Locale.US);  
  27.             Collections.sort(fruits, collator);  
  28.   
  29.             for (int i = 0; i < fruits.size(); i++) {  
  30.                 String fruit = fruits.get(i);  
  31.   
  32.                 System.out.println("collator sort = " + fruit);  
  33.             }  
  34.             // 输出  
  35.             // collator sort = café  
  36.             // collator sort = cafeteria  
  37.             // collator sort = caffeine  
  38.   
  39.         // 中文排序  
  40.         List<String> chineses = new ArrayList<String>();  
  41.         chineses.add("张三");  
  42.         chineses.add("李四");  
  43.         chineses.add("王五");  
  44.         chineses.add("刘六");  
  45.   
  46.         Collections.sort(chineses);  
  47.         for (int i = 0; i < chineses.size(); i++) {  
  48.             String chinese = chineses.get(i);  
  49.             System.out.println("默认中文字符串排序: = " + chinese);  
  50.         }  
  51.         // 输出:  
  52.         // 默认中文字符串排序: = 刘六  
  53.         // 默认中文字符串排序: = 张三  
  54.         // 默认中文字符串排序: = 李四  
  55.         // 默认中文字符串排序: = 王五  
  56.   
  57.         Collator collatorChinese = Collator.getInstance(java.util.Locale.CHINA);  
  58.         Collections.sort(chineses, collatorChinese);  
  59.   
  60.         for (int i = 0; i < chineses.size(); i++) {  
  61.             String chinese = chineses.get(i);  
  62.             System.out.println("以中国语默认顺序来进行中文排序: = " + chinese);  
  63.         }  
  64.         // 输出:  
  65.         // 以中国语默认顺序来进行中文排序: = 李四  
  66.         // 以中国语默认顺序来进行中文排序: = 刘六  
  67.         // 以中国语默认顺序来进行中文排序: = 王五  
  68.         // 以中国语默认顺序来进行中文排序: = 张三  
  69.     }  
  70. }