java随机分组
最近查看blog看着大家不少把自己工作的总结发上来,大家一起总结学习,所以小弟也把工作的一些经验与总结发上来,希望对新人有些帮助。大家互相交流。
package test;import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
// 分组数
int zushu = 2;
int[] l = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// 要随机分组的数组打乱顺序后得到的列表
List<Integer> list = new ArrayList<Integer>();
while (list.size() < l.length) {
int rand = (int) (Math.random() * l.length);
if (list.contains(l[rand])) {
continue;
}
list.add(l[rand]);
}
// 总数除以分组数得到的余数(这个要放到第一组)
int yushu = list.size() % zushu;
// 每组成果的个数
int geshu = (list.size() - yushu) / zushu;
// System.out.println("余树"+yushu);
// System.out.println("每个组的个数"+geshu);
// 分组后的列表(列表里装的列表)
List<List> a = new ArrayList();
// 起始值(为了取每个分组后的组的值)
int c = 0;
// 小组个数起始值
int b = 1;
for (int i = 0; i < zushu; i++) {
List s = new ArrayList();
for (int j = c; j < geshu * b; j++) {
s.add(list.get(j));
c++;
}
a.add(s);
b += 1;
}
// 把余数放到第一个组里
if (a != null && !a.isEmpty()) {
for (int i = 0; i < yushu; i++) {
a.get(0).add(list.get(list.size() - (yushu - i)));
}
}
System.out.println(a.get(0));
System.out.println(a.get(1));
}
}