需求: 一个有关集合的方法
要求:
     1、该集合必须是定长的
     2、最先进入集合的最先出来(FIFO)
     3、重复的元素则替换,被替换的元素移除,而且替换的元素插入在该集合的最后Ex:  依次插入1、2、3、4、5    然后再插入6、1、2、3、4则最后的结果应该是:
   5、6、1、2、3、4请问大家该如何实现呢,谢谢~~  想咯很久,还某实现功能呢 (⊙o⊙)

解决方案 »

  1.   

    用双端列队、普通list都可以1、不说你也知道乍做了
    2、双端列队可以拿头元素,也可以拿最后的元素(普通list要你控制下标)
    3、检查列队中是否存在该元素,存在移除,或者直接把该元素移到最后(普通list要你控制下标)
      

  2.   

    随便找个集合类不就解决了,比如vector,
    public void add(int i)
    {
       Vector v = new Vector();
       if(v.contains(i))
       {
          v.remove(i);
          v.add(i);
       }
       v.add(i);
    }
      

  3.   


    具体点说 i实际上是一个对象  而且每个对象都是不同的  我要保存最新的二十个对象,该怎么实现呢????? O(∩_∩)O~
      

  4.   


    哎,直接用Deque,这个对你来说可以最省事,不过1.6才有,不行,就用个普通list可以了
      

  5.   


    public void list(Object obj){
    if(list.remove(obj)){
    list.add(obj);
    }
    else{
    list.remove(0);
    list.add(obj);
    }
    }
    list.get(list.size() - 1)就是最头的元素
      

  6.   


    public void list(Object obj){
    if(!list.remove(obj)){
    list.remove(0);
    }
    list.add(obj);
    }