
package com.dubbo.provider.main; |
import com.dubbo.provider.bean.User; |
import org.apache.commons.beanutils.BeanComparator; |
import org.apache.commons.collections.ComparatorUtils; |
import org.apache.commons.collections.comparators.ComparableComparator; |
import org.apache.log4j.Logger; |
import java.text.Collator; |
import java.util.ArrayList; |
import java.util.Collections; |
import java.util.Comparator; |
import java.util.List; |
/** |
* Created by Administrator on 2017/3/25. |
*/ |
public class OrderDemo { |
private static Logger logger = Logger.getLogger(PinyinUtil.class.getName()); |
/** |
* main方法,用于测试 |
* |
* @param args |
*/ |
public static void main(String[] args) { |
//order1(); |
order2(); |
} |
/** |
* 对List<String>类型数据进行排序 |
*/ |
public static void order1() { |
List<String> list = new ArrayList<String>(); |
list.add("易皇星"); |
list.add("阿弟"); |
list.add("冰球"); |
list.add("崇明"); |
list.add("邓小平"); |
list.add("sfsf"); |
list.add("jjrd"); |
//根据的汉字的拼音的字母排序 |
Collections.sort(list, Collator.getInstance(java.util.Locale.CHINA)); |
for (int i = 0; i < list.size(); i++) { |
logger.info(list.get(i)); |
} |
} |
/** |
* 对List<JavaBean>类型数据进行排序 |
*/ |
public static void order2() { |
List<User> list = new ArrayList<User>(); |
list.add(new User(1, "易皇星", "1")); |
list.add(new User(2, "阿弟", "2")); |
list.add(new User(3, "冰球", "3")); |
list.add(new User(4, "崇明", "4")); |
list.add(new User(5, "邓小平", "5")); |
list.add(new User(6, "sfsg", "6")); |
list.add(new User(7, "fhf", "7")); |
list.add(new User(8, "mdrgr", "8")); |
list.add(new User(9, "24", "9")); |
list.add(new User(10, "6", "10")); |
list.add(new User(11, null, "11")); |
//按照汉字拼音排序,支持汉字、英文混合排序。 |
PinyinComparator pinyinComparator = new PinyinComparator(); |
sort(list, "name", true, pinyinComparator); |
logger.info(list); |
} |
/** |
* 自定义排序方法 |
* |
* @param list |
* @param fieldName |
* @param asc |
* @param cmp |
* @param <T> |
*/ |
public static <T> void sort(List<T> list, String fieldName, boolean asc, Comparator<?> cmp) { |
cmp = ComparatorUtils.nullLowComparator(cmp); // 允许null |
if (!asc) { |
cmp = ComparatorUtils.reversedComparator(cmp); // 逆序 |
} |
Collections.sort(list, new BeanComparator(fieldName, cmp)); |
} |
/** |
* 自定义排序方法 |
* |
* @param list |
* @param fieldName |
* @param asc |
* @param <T> |
*/ |
public static <T> void sort(List<T> list, String fieldName, boolean asc) { |
Comparator<?> cmp = ComparableComparator.getInstance(); |
cmp = ComparatorUtils.nullLowComparator(cmp); // 允许null |
if (!asc) { |
cmp = ComparatorUtils.reversedComparator(cmp); // 逆序 |
} |
Collections.sort(list, new BeanComparator(fieldName, cmp)); |
} |
} |




by: 发表于:2017-07-07 15:46:30 顶(0) | 踩(0) 回复
??
回复评论