以下程序的运行结果始终如下,请在下划线处添加相应代码。
运行结果:
DDDDDDDD
CCCCCCCC
BBBBBBBB
AAAAAAAA
程序代码:import java.util.*;
class  A{
String sa ;
A(String str){
sa = str;
}
public String toString(){
return sa;
}
}
public class B {
public static void main(String args[]) {
Set<A> set = new HashSet<A>();
set.add(new A("AAAAAAAA"));
set.add(new A("BBBBBBBB"));
set.add(new A("CCCCCCCC"));
set.add(new A("DDDDDDDD"));
                        ______;
while(it.hasNext()){
System.out.println(it.next());
}
}
}

解决方案 »

  1.   

    HashSet是用HashCode()排序的,LZ可以重写A的HashCode方法试试
      

  2.   

    必须得有这句啊:
    Iterator it=set.iterator();
      

  3.   


       Iterator it = set.iterator();
      

  4.   

    这是三行代码的:
    Set tSet = new TreeSet(new Comparator<A>() {            @Override
                public int compare(A o1, A o2) {
                    return o2.sa.compareTo(o1.sa);
                }        });
            tSet.addAll(set);
            Iterator it = tSet.iterator();
            while (it.hasNext()) {
                System.out.println(it.next());
            }
    一行代码也可以的,不过定义的set就多余了:Iterator it = new TreeSet(new Comparator<A>() {            @Override
                public int compare(A o1, A o2) {
                    return o2.sa.compareTo(o1.sa);
                }        }) {
                {
                    add(new A("AAAAAAAA"));
                    add(new A("BBBBBBBB"));
                    add(new A("CCCCCCCC"));
                    add(new A("DDDDDDDD"));
                }
            }.iterator();
      

  5.   

    baby1986 提供了好的思路。Thanks.
    不过还是受填空题的约束,是不是有比较好用的api??
    我在试试吧。
      

  6.   

    HashSet 是无序的(跟 hashCode 有关)如果想按 add 时的顺序遍历的话,可以使用 LinkedHashSet
      

  7.   


    +1如果想排序的话,可以用TreeSet 
      

  8.   

    你这个是填空题的嘛  需要Iterator it=set.iterator();HashSet 是无序的,所以你那个输出结果只是碰巧而已,再输出估计就不会是那样了
      

  9.   

    可是题目要求的处理结果是“始终如下”。运行结果:DDDDDDDD
    CCCCCCCC
    BBBBBBBB
    AAAAAAAA莫非题目有问题??!!
      

  10.   

    好像用hashmap结果能达到,不过你想达到那个效果,最好是键值对的形式