import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Generate2Array {
public static void main(String[] args) {
/*
* 数组维度声明
*/
int px = 20;
int py = 10;
/*
* 按照比例生成一个集合
*/
double percent = 0.2;
int count = px * py;
List<Integer> l = new ArrayList<>();
for(int i =0; i<(count * percent); i++) {
l.add(0);
}
for (int i = 0; i < count*(1-percent); i++) {
l.add(1);
}
/*
* 打乱顺序
*/
exchange(l);
/*
* 赋值到数组中
*/
Integer[][] s = new Integer[px][py];
for (int i = 0; i < count; i++) {
int index1 = i/py;
int index2 = i%py;
s[index1][index2] = l.get(i);
}
/*
* 统计信息, 打印输出验证结果
*/
int countx = 0;
int county = 0;
for (int i = 0; i < s.length; i++) {
for (int j = 0; j < s[i].length; j++) {
if(s[i][j].intValue() == 0) {
countx++;
} else if (s[i][j].intValue() == 1) {
county++;
}
System.out.print(s[i][j] + " ");
}
System.out.println();
}
System.out.println("0个数" + countx + ", 1个数:" + county);
}
/**
* 随机化
* @param l
*/
private static void exchange(List<Integer> l) {
if(l == null || l.isEmpty())
return;
Random r = new Random();
for (int i = 0; i < l.size(); i++) {
int j = r.nextInt(l.size());
if(j != i) {
Integer temp = l.get(j);
l.set(j, l.get(i));
l.set(i, temp);
}
}
}
}
java生成只包含两种类型, 并且比例可配置的二维数组代码
猜你喜欢
转载自blog.csdn.net/SkydivingWang/article/details/84033151
今日推荐
周排行