有一个含记录的set,要将其拆分,满1000个记录就拆分出去1个,比如这个set里有3000记录,则将其拆分为3个set,在不使用循环的情况下该如何拆分?

解决方案 »

  1.   

    可以用最笨的办法:
      用iterator 和一个变量记录遍历的次数
      

  2.   

    可以用foreach语句尝试着做一下
      

  3.   


    public static void main(String[] args){
        //這裡是初始值
        Set set= new TreeSet();
        for(int i=0;i<3500;i++){
            set.add(i);
        }
        //這裡開始主要判斷式
        ArrayList newSet = new ArrayList(set);
        Set setSet = new HashSet();
        int st = 0;
        int size= set.size();
        //這個迴圈還是免不了的。
        while(size>1000){
            setSet.add(new TreeSet(newSet.subList(st, st+1000)));
            st+=1000;
            size-=1000;
        }
        setSet.add(new TreeSet(newSet.subList(st, set.size())));
        
        //以下是列印值
        Iterator iter = setSet.iterator();
        while(iter.hasNext()){
            Set s = (Set)iter.next();
            System.out.println("Start...........("+s.size()+")");
            Iterator sIter= s.iterator();
            while(sIter.hasNext()){
                System.out.println(sIter.next());
            }
            System.out.println("----------END--------------");
        }
    }
      

  4.   

    ArrayList list = new ArrayList(set);
    Set set1 = new HashSet(list.subList(0,1000));
    Set set2 = new HashSet(list.subList(1000,2000));
    Set set3 = new HashSet(list.subList(2000,3000));