List L = ... ; List A = new ArrayList(L.length/3+1); List B = new ArrayList(L.length/3+1); List C = new ArrayList(L.length/3+1); Iterator I = L.iterator(); List[] sort = {A,B,C,C,B,A}; int s = 0; while(I.hasNext()){ sort[s].add(I.next()); s = (s+1)%sort.length; }
可能是一个列表在分成多个列表时的分布算法
比如列表L要分成三列:A,B,C
A0=L0,B0=L1,C0=L2,
A1=L5,B1=L4,C1=L3,
A2=L6,B2=L7,C2=L8,
...
这样有点象S形,如果L是排名顺序,这样差距比较平均——完全是个人猜测^_^
List A = new ArrayList(L.length/3+1);
List B = new ArrayList(L.length/3+1);
List C = new ArrayList(L.length/3+1);
Iterator I = L.iterator();
List[] sort = {A,B,C,C,B,A};
int s = 0;
while(I.hasNext()){
sort[s].add(I.next());
s = (s+1)%sort.length;
}