public static void main(String[] args) {
int[] a=new int[20];
int[] reult1=new int[10];
int[] reult2=new int[10];
int idx1=0;//result的下标
int idx2=0;
for (int i = 0; i < a.length; i++) {
a[i]=(int)(Math.random()*100);
if (a[i]<50){
if (idx1>=reult1.length){
reult1= riseLength(reult1);//扩容后新地址需要按原数组接收
}
reult1[idx1]=a[i];
idx1++;
}else {
if (idx2>=reult2.length){
reult2=riseLength(reult2);
}
reult2[idx2]=a[i];
idx2++;
}
}
reult1=cutLength(reult1);
reult2=cutLength(reult2);
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(reult1));
System.out.println(Arrays.toString(reult2));
Collection<String >coll=new ArrayList<>();
}
/*
截取数组空元素,形成新数组,a是要变更的数组,length有效的数据长度
因为传入的是地址值,被覆盖后的改变不会与前面的地址相同
*/
public static int[] cutLength(int[] a){
for (int i = 0; i < a.length-1; i++) {
if (a[i]==0&&a[i+1]==0){
a= Arrays.copyOf(a,i);
break;
}
if (a[a.length-1]==0){
a=Arrays.copyOf(a,a.length-1);
}
}
return a;
}
/*
数组扩容、要求原本的元素都要在其中,顺序不变,a是要变更的数组,length
长度每次为原来的一半
*/
public static int[] riseLength(int[] a){
a=Arrays.copyOf(a,a.length*3/2);
return a;
}
生成一堆随机数据,定义一个规则,大于50的行成一个数组,小于的形成另外一个数组
最新推荐文章于 2023-02-07 17:01:22 发布
这篇博客介绍了如何生成大量随机数据,并根据数值大小将其分为两个数组,其中数值大于50的元素构成一个数组,而数值小于50的元素构成另一个数组。这一过程在数据分析和预处理中常见,用于后续的特定操作或分析。
摘要由CSDN通过智能技术生成