Java 排序数组列表?Treeset是';不起作用。还有其他选择吗?

Java 排序数组列表?Treeset是';不起作用。还有其他选择吗?,java,arrays,Java,Arrays,我正在尝试将我数组中的联系人按姓氏按字母顺序排序(注意:联系人是按姓氏排序的,首先“Brown and Adams”是我正在测试的姓氏。我的代码树集似乎不起作用。有人能帮我吗 public void print() { // print the list for (int i = 0; i < contacts.size(); i++) { Set<String> set = new TreeSet<String>();

我正在尝试将我数组中的联系人按姓氏按字母顺序排序(注意:联系人是按姓氏排序的,首先“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);

        }
    }
}
public void print(){
//打印列表
对于(int i=0;i
/*--------------我的跑步---------

联系人信息已保存

棕色,asdf,asdf,asdf,asdf,asdf,asdf,asdf,asdf

亚当斯,asdf,asdf,asdf,asdf,asdf,asdf,asdf


---------------------------------/*你所做的是错误的

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);
}
Set Set=new TreeSet();
对于(int i=0;i
使用Collections类…
Collections.sort(contacts);
除非您想使用自己的代码来评估您的技能;-)

有几个问题,首先您要在填充集合的循环的每个迭代上创建一个新的树集。其次,在每次迭代中调用一个循环来打印树集中的所有内容(您刚刚创建并放入一个内容),因此基本上您所做的就是按原始顺序打印数组。下面是修复这两个问题的一些代码:

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);
    }
}
public void print(){
Set=新树集();
//把树塞满
对于(int i=0;i

}

那么
集合#排序
呢?您每次迭代都会创建一个新集合。奇怪的是,这是今天的第三个问题,也是同样的根本问题。谢谢!这很好用。真奇怪,我怎么会错过这个。我尝试过很多方法。更简单的是,使用“for each”语法:
for(whatevertypethis是联系人:contacts){set.add(contact.toString());}