存储到一个新的数组中
⑴ java编程将a,b数组中不同的数字保存到一个新的数组中
建立一个临时数组 定义一个length来记录新加入的元素个数 然后把a b 的元素逐个加入到新数组中 加入前先用Arrays.binarySearch 检查新数组中是否已经有该元素 最后返回
以下代码仅供参考
importjava.util.Arrays;
publicclassTestCircle{
publicstaticvoidmain(Stringargs[]){
int[]a=newint[]{1,3,5,2,9,5};
int[]b=newint[]{2,5,7,10,9,11};
int[]temp=addArray(a,b);
System.out.print("[");
for(inti:temp){
System.out.print(i+"");
}
System.out.print("]");
}
staticint[]addArray(int[]a,int[]b){
int[]temp=newint[a.length+b.length];
intlength=0;
for(inti:a){
Arrays.sort(temp);
if(Arrays.binarySearch(temp,i)<0){
temp[temp.length-length-1]=i;
length++;
}
}
for(inti:b){
Arrays.sort(temp);
if(Arrays.binarySearch(temp,i)<0){
temp[temp.length-length-1]=i;
length++;
}
}
returnArrays.OfRange(temp,temp.length-length,temp.length);
}
}
若你能保证a中的元素都是无重复的话 可以简化成以下
importjava.util.Arrays;
publicclassTestCircle{
publicstaticvoidmain(Stringargs[]){
int[]a=newint[]{1,3,5,2,9};
int[]b=newint[]{2,5,7,10,9,11};
Arrays.sort(a);
int[]temp=addArray(a,b);
System.out.print("[");
for(inti:temp){
System.out.print(i+"");
}
System.out.print("]");
}
/**
*这里a数组必须是有序不重复的
*/
staticint[]addArray(int[]a,int[]b){
int[]temp=Arrays.Of(a,a.length+b.length);
intlength=a.length;
for(inti:b){
if(Arrays.binarySearch(a,i)<0){
temp[length]=i;
length++;
}
}
returnArrays.Of(temp,length);
}
}
⑵ 请问如何将 关联数组 里面的值提出 来存到一个新的数组中
在学习核心问题是:如何将 数据存放在数组$datay 里面!可能有的师兄还不明白:目的:1.从数据库中提出一系列数据,比如1254,4545,54545,545,54564,54564。分别代表了一月到六月的上网流量;2.将这些数字的高度作为Y坐标(Y轴,这个不会不这道吧?),3.横坐标是X轴,是1,2,3,4,5,64.以直立方图(这个不会不知道把?) 动态,显示出来,是动态的显示,不是静态的哦。
⑶ 将数组序号存入一个新的数组
其实用ArrayList存放数据更好,可以动态增加。像现在这样,要先判断数组位数。如果先申请6位大小数组,如果实际只有4位数,那么还有2为空间是不放东西的。而int默认是0,所以你输出的结果就会有6位,最后2位为0。这样就不合理。但像我下面写的,虽然解决这个问题,但是增加了代码。所以还是用ArrayList存放更好。
不过还是把数组的代码放下面
public class test {
public static void main(String args[]){
int nums[]={31,22,45,0,0,87};
int length=nums.length;
int newnums[]=new int[length];
int t=0;
//先判断有多少个大于30的数
for(int i=0;i<nums.length;i++){
if(nums[i]>30){
newnums[t]=nums[i];
t++;
}
}
//有t个数
int result[]=new int[t];
for(int j=0;j<t;j++){
result[j]=newnums[j];
System.out.println(newnums[j]);//输出结果
}
}
}