java随机分组

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));
}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值