如何将一个数组随机分为四组

super_loverax 2013-07-07 03:09:48
比如说,数组元素为int[] array={1,3,4,8,7,6,9,11,17,21,24,31;
将这个数组随机分为四组,每组中的元素都是从array中随机分配的,有好的方法实现吗。
...全文
1558 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
super_loverax 2013-07-09
  • 打赏
  • 举报
回复
感谢大家的回复,我知道怎么做了。
jsshizhanab 2013-07-08
  • 打赏
  • 举报
回复
package test;

import java.util.Random;

public class RandomArray {
	public static void main(String[] args) {
		int[] array = { 1, 3, 4, 8, 7, 6, 9, 11, 17, 21, 24, 31 };
		Random random = new Random();
		int[] array1 = new int[3];
		int[] array2 = new int[3];
		int[] array3 = new int[3];
		int[] array4 = new int[3];
		for (int i = 0; i < 2; i++) {
			int index = random.nextInt(12);
			array1[i] = array[index];
		}
		for (int i = 0; i < 2; i++) {
			int index = random.nextInt(12);
			array2[i] = array[index];
		}
		for (int i = 0; i < 2; i++) {
			int index = random.nextInt(12);
			array3[i] = array[index];
		}
		for (int i = 0; i < 2; i++) {
			int index = random.nextInt(12);
			array4[i] = array[index];
		}
		System.out.print("数组1:");
		for (int i = 0; i < array1.length; i++) {
			System.out.print(array1[i] + ",");
		}
		System.out.print("数组2:");
		for (int i = 0; i < array2.length; i++) {
			System.out.print(array2[i] + ",");
		}
		System.out.print("数组3:");
		for (int i = 0; i < array3.length; i++) {
			System.out.print(array3[i] + ",");
		}
		System.out.print("数组4:");
		for (int i = 0; i < array4.length; i++) {
			System.out.print(array4[i] + ",");
		}
	}
}
这个没去重复,如果要去重复的话,得用list
lkq_david 2013-07-08
  • 打赏
  • 举报
回复
随机生成几个数字作为数组下标就ok了
jsshizhanab 2013-07-08
  • 打赏
  • 举报
回复
被分配的数组的长度也是随机的么?
  • 打赏
  • 举报
回复
对每个元素取出0-3的随机数,分别对应四个数组 。。。。。不过每个数组的元素个数不等
Inhibitory 2013-07-07
  • 打赏
  • 举报
回复
Collections.shuffle先打乱数组,然后再平均分成4分
失落夏天 2013-07-07
  • 打赏
  • 举报
回复
数组的长度为10的话, 10除以4得到长度。 然后对0到9分到4个组里面,直接取数组下标就可以了。
rencht 2013-07-07
  • 打赏
  • 举报
回复
取从1到数组长度的整型随机数,遇到重复的重新取, 随机数对应数组下标
花木兰1闪21A 2013-07-07
  • 打赏
  • 举报
回复
public static void main(String[] args) {
		int[] array = { 1, 3, 4, 8, 7, 6, 9, 11, 17, 21, 24, 31 };
		List<Integer> list = new ArrayList<Integer>();
		for (Integer i : array) {
			list.add(i);
		}
		Collections.shuffle(list);
		int arrayCount = 3;                               //分的组数
		int arraySumCount = list.size() / arrayCount;     //每组数量
		int startIndex = 0;                               //每组开始下标
		StringBuilder sBuilder = new StringBuilder();
		for (int i = 0; i < list.size(); i++) {
			if ((i + 1) % arraySumCount == 0) {
				for (int j = startIndex; j <= i; j++) {
					sBuilder.append(list.get(j)).append(",");
				}
				sBuilder.append("/");
				startIndex = i + 1;
			}
		}
		String strArrayString[] = sBuilder.toString().split("/");
		for (String string : strArrayString) {
			System.out.println(string.substring(0, string.length() - 1));
		}
	}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧