我正在尝试将我的数组中的联系人按姓氏按字母顺序排序(注意:首先通过姓氏引入联系人“Brown and Adams”是我正在测试的姓氏。似乎我的代码树集不行。有人可以帮帮我吗?
public void print() {
// print the list
for (int i = 0; i < contacts.size(); i++) {
Set<String> set = new TreeSet<String>();
String str;
str = contacts.get(i).toString();
set.add(str);
for (String key : set) {
System.out.println(key);
}
}
}
/ * --------------我的运行---------
联系信息已保存。
brown,asdf,asdf,asdf,asdf,asdf,asdf,asdf
adams,asdf,asdf,asdf,asdf,asdf,asdf,asdf
--------------------------------- / *
答案 0 :(得分:2)
你在做什么是错的!
Set<String> set = new TreeSet<String>();
for (int i = 0; i < contacts.size(); i++) {
set.add(contacts.get(i).toString());
}
for (String key : set) {
System.out.println(key);
}
答案 1 :(得分:0)
使用Collections类... Collections.sort(contacts);
,除非您想使用自己的代码来评估您的技能; - )
答案 2 :(得分:0)
一些问题,首先是在循环的每次迭代中创建一个新的TreeSet来填充集合。其次,你正在调用一个循环来打印TreeSet中的所有内容(你刚刚制作并放入一个东西),所以你基本上所做的就是按原始顺序打印数组。以下是一些修复这两个问题的代码:
public void print() {
Set<String> set = new TreeSet<String>();
// Fill up the TreeSet
for (int i = 0; i < contacts.size(); i++) {
String str = contacts.get(i).toString();
set.add(str);
}
// Print out the TreeSet
for (String key : set) {
System.out.println(key);
}
}
}