中文首字母排序

要求按名字排序

	List<user> list =new ArrayList<user>();
	try {
	SAXReader reader=new SAXReader();//创建reder对象  用来读取xml
	Document doc=reader.read(new File("src/user.xml"));//读取xml文件
	Element root=doc.getRootElement();//获取根节点
	Iterator<?> it=root.elementIterator();//迭代器循环
	while(it.hasNext()) {
		Element e=(Element) it.next();//获取子元素
		Attribute id=e.attribute("id");
		Element name=e.element("name");
		Element dianhua=e.element("dianhua");
		user u=new user();
		u.setId(id.getValue());
		u.setName(name.getText());
		u.setDianhua(dianhua.getText());
		list.add(u);
	}
	} catch (Exception e) {
	// TODO: handle exception
	}
	List<String> a=new ArrayList<String>();
	for (user user : list) {//把所有数据的name添加到a集合种
		a.add(user.getName());
	}
	String[] strs1=a.toArray(new String[a.size()]);//jdk自带的排序只能让数组排序  这里将a集合转换成strs数组
	Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);
	// JDKz自带对数组进行排序。
	Arrays.sort(strs1, cmp);
	List<user> list1 =new ArrayList<user>();
	for (int i = 0; i < strs1.length; i++) {
		for (user user : list) {//遍历原来查询的集合  按照和strs一样的顺序添加到新的集合中
			if (strs1[i].equals(user.getName())) {
				list1.add(user);				
			}
		}
	}
	for (user user : list1) {//循环输出新的集合
		System.out.println("id:"+user.getId()+"  姓名:"+user.getName()+"  手机号:"+user.getDianhua());
	}

这是从xml种查询出来的数据

核心排序代码
Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);
Arrays.sort(strs1, cmp);
strs1是一个数组

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值