1.将一个给定的整型数组转置输出,
- 例如: 源数组,1 2 3 4 5 6
- 转置之后的数组,6 5 4 3 2 1
思路:
创建一个反转的方法,将数组的第一个元素和最后一个元素进行交换,每次循环向最中间的数靠近。总共循环了arra.length/2次。
源码:
public static void main(String[] args) {
System.out.println("请输入个数字");
Scanner sc = new Scanner(System.in);
int[] arra = new int[10];
for (int i = 0 ; i < arra.length ; i++){
arra[i] = sc.nextInt();
}
reverse(arra);
for (int i = 0;i < arra.length ; i++){
System.out.println(arra[i]);
}
}
public static void reverse(int[] array){
for(int i = 0; i < array.length/2 ; i++){
int temp = array[i];
array[i] = array[array.length-i-1];
array[array.length-i-1] = temp;
}
}
2.现在有如下的一个数组:
- int[] oldArr = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
- 要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
- int[] newArr = {1,3,4,5,6,6,5,4,7,6,7,5} ;
思路:
先把数组中的0个数得到,创建除0数组,将不是零的插入到新数组中。
源码:
public static void main(String[] args) {
int[] arra = new int[]{1,1,0,1,1,1,1};
int[] arraNew = exit0Array(arra);
for(int i = 0 ;i < arraNew.length;i++){
System.out.println(arraNew[i]);
}
}
public static int[] exit0Array(int[] arra){
int a = 0;
for (int i = 0;i<arra.length;i++){
if (arra[i]==0){
a++;
}
}
int[] arrayNew = new int[arra.length-a];
for (int i = 0,j=0; i <arra.length ; i++) {
if(arra[i]!=0)
{
arrayNew[j]=arra[i];
j++;
}
}
return arrayNew;
}
}
3.现在给出两个数组:
- 数组a:“1,7,9,11,13,15,17,19”
- 数组b:“2,4,6,8,10”
- 两个数组合并为数组c。
思路:
创建一个数组c长度是a+b的长度,把a赋值到c中,再将b赋值到c后面空余的位置。
源码:
public static void main(String[] args){
int[] a = new int[]{1,7,9,11,13,15,17,19};
int[] b = new int[]{2,4,6,8,10};
int[] c = new int[a.length+b.length];
for (int i = 0 ; i <a.length ;i++){
c[i] = a[i];
}
for (int j = a.length ; j < a.length+b.length;j++){
c[j] = b[j-a.length];
}
for (int i = 0;i<c.length;i++){
System.out.println(c[i]);
}
}