首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎么让HashSet中的元素能顺序遍历

2012-04-23 
如何让HashSet中的元素能顺序遍历以下程序的运行结果始终如下,请在下划线处添加相应代码。运行结果:DDDDDDD

如何让HashSet中的元素能顺序遍历
以下程序的运行结果始终如下,请在下划线处添加相应代码。
运行结果:
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
[解决办法]
探讨

HashSet 是无序的(跟 hashCode 有关)

如果想按 add 时的顺序遍历的话,可以使用 LinkedHashSet

[解决办法]
你这个是填空题的嘛 需要Iterator it=set.iterator();

HashSet 是无序的,所以你那个输出结果只是碰巧而已,再输出估计就不会是那样了
[解决办法]
光加这一句肯定不行,结果是不确定的.

看来这一行得多写几条语句.
[解决办法]
探讨

HashSet 是无序的(跟 hashCode 有关)

如果想按 add 时的顺序遍历的话,可以使用 LinkedHashSet

[解决办法]
探讨
Java code


Iterator it = set.iterator();

[解决办法]
好像用hashmap结果能达到,不过你想达到那个效果,最好是键值对的形式
[解决办法]
探讨
必须得有这句啊:
Iterator it=set.iterator();

热点排行