数组的简单操作
一,数组的反转
给定一数组,反转后数组倒置
例如:原数组:1,2,3,4,5,6
倒置后数组:6,5,4,3,2,1
思路:定义两个相同长度的数组;原数组的尾赋值给新数组的头,倒数第二位给新数组第二位,以此类推:

代码:
public class Main {
public static void main(String[] args) {
//数组的反转
ArraysSet set = new ArraysSet();
int[] arr = {1,2,3,4,5,6};
arr=set.arrReversal(arr);
for (int i=0;i<arr.length;i++) {
System.out.println(arr[i]);
}
}
class ArraysSet{
//数组反转方法的实现
public int[] arrReversal(int[] arr){
int[] a = new int[arr.length];
for(int i= 0;i<arr.length;i++) {
a[i] = arr[arr.length - 1 - i];
}
return a;
}
}
二:数组的去零
把原数组中的零去掉获取新数组
例:int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
newArr={1,3,4,5,6,6,5,4,7,6,7,5}
思路:
创建一个新数组,新数组长度为老数组长度减去零元素后的长度,把老数组元素挨个放入新数组;

代码:
public class Main {
public static void main(String[] args) {
//数组去零操作
/* int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int[] newArr =set.zeroDele(oldArr);
for(int i=0;i<newArr.length;i++){
System.out.println(newArr[i]);
}*/
}
class ArraysSet{
// 数组查零个数
public int zeroNumber(int[] arr){
int num = 0;
for (int i=0;i<arr.length;i++){
if(arr[i]==0)
num++;
}
return num;
}
//数组去零
public int[] zeroDele(int[] arr){
int num = zeroNumber(arr);
int n=0;
int[] a = new int[arr.length-num];
for(int i=0;i<arr.length;i++){
if(arr[i]==0)
{
n++;
}
else{
a[i-n]=arr[i];
}
}
return a;
}
}
三:数组的合并,
给出两个数组,把数组合并为新的数组:
数组a:“1,7,9,11,13,15,17,19”
数组b:“2,4,6,8,10”
数组c:“1,7,9,11,13,15,17,19,2,4,6,8,10”
思路:创建c数组长度为a数组与b数组长度之和,首先把a数组元素赋值到c数组前面,然后将b数组元素接着赋值直到结束

代码:
public class Main {
public static void main(String[] args) {
//数组合并
int[] a={1,7,9,11,13,15,17,19};
int[] b={2,4,6,8,10};
int[] c=set.amalArr(a,b);
for (int i=0;i<c.length;i++) {
System.out.println(c[i]);
}
}
}
class ArraysSet{
//数组合并
int[] amalArr(int[] a,int[] b){
int[] c = new int[a.length+b.length];
for(int i=0;i<(a.length+b.length);i++){
if(i<a.length){
c[i] =a[i];
}
else{
c[i] =b[i-a.length];
}
}
return c;
}
}
浙公网安备 33010602011771号