- 用来排序中文姓名或者各种语言杂糅的对象集合
首先我们来设定数据,这就是待排序集合
List<String> list = new ArrayList<String>(); list.add("李方"); list.add("郭云2"); list.add("郭云3"); list.add("赵飞"); list.add("马路"); list.add("xxx"); list.add("xxy"); list.add("432");
然后定义一个比较器,实现比较规则
Comparator<String> comparator = new Comparator<String>() { @Override public int compare(String o1, String o2) { //传入两个比较对象 //获取默认的语言环境;也可指定,全是中文的话可以传个中文的类进去 Collator collator = Collator.getInstance(); //返回一个比较值;CollationKey是Collator用来将String元素转换成可以彼此比较位的类 return collator.getCollationKey(o1).compareTo( //小于返回负数,以此类推 collator.getCollationKey(o2)); } };
调用Collections的sort方法,传入待排序集合和比较规则
Collections.sort(list, comparator); System.out.println(list); //[432, xxx, xxy, 郭云2, 郭云3, 李方, 马路, 赵飞];默认把数字、字母放在前面
- 代码实例:SpringMvc02/test/TestCodeSeg