要求按名字排序
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是一个数组