以下程序的运行结果始终如下,请在下划线处添加相应代码。
运行结果:
DDDDDDDD
CCCCCCCC
BBBBBBBB
AAAAAAAA
程序代码:
- Java code
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()); } }}
------解决方案--------------------
HashSet是用HashCode()排序的,LZ可以重写A的HashCode方法试试
------解决方案--------------------
必须得有这句啊:
Iterator it=set.iterator();
------解决方案--------------------
- Java code
Iterator it = set.iterator();
------解决方案--------------------
这是三行代码的:
- Java code
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()); }
------解决方案--------------------
HashSet 是无序的(跟 hashCode 有关)
如果想按 add 时的顺序遍历的话,可以使用 LinkedHashSet
------解决方案--------------------
------解决方案--------------------
你这个是填空题的嘛 需要Iterator it=set.iterator();
HashSet 是无序的,所以你那个输出结果只是碰巧而已,再输出估计就不会是那样了
------解决方案--------------------
光加这一句肯定不行,结果是不确定的.
看来这一行得多写几条语句.
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
好像用hashmap结果能达到,不过你想达到那个效果,最好是键值对的形式
------解决方案--------------------