有没有这种集合,可以自动排序,还可以保存相同元素,比如:
如下元素:"a","b","d","a","b","c".
保存到集合以后以如下顺序保存:"a","a","b","b","c","d".

解决方案 »

  1.   

    在你另一个贴子说了啊!!
    用HashSet
      

  2.   

    List就可以,用
    Collections.sort()进行排序。如果你要自动排序,还真没这么用过。
      

  3.   

    用TreeMap 我前两天还耍过这个~
      

  4.   

    用TreeMap,然后调用keyValues方法即可
      

  5.   

    楼上能不能具体点,具体key values怎么赋值,谢谢。
      

  6.   


          
      HashMap  map=new HashMap();
      map.put(1,"a");
      map.put(2,"b");
     ...
      Set st=map.KeySet();
      Collections.sort(st);
      估计差不多了  忘
      

  7.   

    不过treemap/treeset 不能有重复键值
      

  8.   

    "a","b","d","a","b","c". 
    保存到集合以后
    剩下:"a","b","c","d".
      

  9.   

    最后集合中的"a"与"a"是一样的,其实就没意思了,也许你逻辑上有点问题,完全可以不这样做呀.
    举个例子吧.取出的对象有个元素是日期,日期是有重复的,如果想用日期拿对象,只要把用对象ID和日期做KEY,VALUE是对象入
    MAP,然后你把日期放SET排序,再顺序取出.呵呵,我知道我说的和你问的一点关系也没有.就当我灌水了吧
      

  10.   

    1) 单列数据使用Collection下面的接口,键值对使用Map接口。
    2) 如果已确定使用Collection,那么要考虑单列集合是否有重复。有重复的就使用List接口,否则使用Set。(本题使用List接口
    3) 在使用List时,如果需要对集合中数据进行频繁的插入或删除操作,使用LinkedList,如果只是对集合中的元素进行查询或者插入删除操作不频繁,使用ArrayList。如果需要考虑线程安全问题使用Vector。在使用这些类时,我可以利用java动态绑定的好处,用他们所共同实现的接口来定义变量。
    4) 在使用Set时,如果不需要排序,需要在乎速度那就使用HashSet,如果需要对元素进行排序,直接使用TreeSet。
    5) 如果使用Map,那么我们要考虑使用的是HashMap、还是TreeMap。无序,速度快的是HashMap。有序速度慢的是TreeMap。
    注意:HashTable它虽然实现了Map接口,但不属于集合框架,它与HashMap非常类似。只是HashTable是线程安全的,性能要比HashMap稍低一些。HashMap是在jdk1.1以后用来替代HashTable的。比如说:Properties就是继承与HashTable。如果需要排序,像本题中的排序直接调用Collections.sort(Collection c);也可以自定义排序
      

  11.   

    按你的排序法则重写Comparator,然后构造Treeset(comparator)
      

  12.   

    在集合类里面,最常用的三个集合是:set,list,map.要完成可以重复的自动排序当然要选择list类,和sort方法。故如下:
                   List mylist=new ArrayList();
    mylist.add("a");
    mylist.add("b");
    mylist.add("a");
    mylist.add("a");
    mylist.add("b");
    mylist.add("a");
    mylist.add("a");
    mylist.add("b");
    mylist.add("a");
    Collections.sort(mylist);//完成自动排序结果是:
    a
    a
    a
    a
    a
    a
    b
    b
    b