黑马程序员技术交流社区
标题:
TreeSet比较器如果对汉字字符进行比较有什么规律呢
[打印本页]
作者:
臭和尚
时间:
2014-9-26 10:02
标题:
TreeSet比较器如果对汉字字符进行比较有什么规律呢
我刚编写了一段代码对几个人的名字进行比较,发现没有按照汉字拼音的顺序。
package cn.itcast_Demo;
import java.util.Comparator;
import java.util.TreeSet;
//TreeSet集合存储自定义对象并遍历(比较器接口)
public class TreeSetTest4 {
public static void main(String[] args) {
//创建集合对象
TreeSet<Student> set = new TreeSet(new Comparator<Student>(){
@Override
public int compare(Student s1, Student s2) {
int a1 =s1.getName().compareTo(s2.getName());
int a2 = a1==0?(s1.getAge()-s2.getAge()):a1;
int a3 = a2==0?(s1.getSex().compareTo(s2.getSex())):a2;
return a3;
}
});
//创建自定义对象
Student s1 = new Student("小明",14,"男");
Student s2 = new Student("小红",12,"女");
Student s3 = new Student("王老汉",56,"男");
//添加对象到集合
set.add(s1);
set.add(s2);
set.add(s3);
//遍历
for(Student s : set){
System.out.println(s.getName()+"..."+s.getAge()+"..."+s.getSex());
}
}
}
复制代码
作者:
臭和尚
时间:
2014-9-26 10:05
如果是按照26个英文字母顺序排列名字,顺序应该是小明,小红,王老汉
运行出来结果是这样
QQ图片20140926100528.png
(2.1 KB, 下载次数: 30)
下载附件
2014-9-26 10:05 上传
作者:
臭和尚
时间:
2014-9-26 10:06
说错了,预想顺序是 小红 小明 王老汉:L
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2