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)); } }
Collections.shuffle先打乱数组,然后再平均分成4分
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
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));
}
}
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