1
/* 合并两个随机生成数组: 数组长度:1-10随机 元素的范围:0-50随机 */ public class Demo{ public static void main(String[] args){ int[] arr1 = genArray(); printArray(arr1); int[] arr2 = genArray(); printArray(arr2); int[] big = merge(arr1,arr2); printArray(big); } //随机生成int数组 public static int[] genArray(){ int len = (int)(Math.random() * 10 + 1); int[] arr = new int[len]; for(int i = 0;i<arr.length;i++){ arr[i] = (int)(Math.random() * 51); } return arr; } //合并两个数组 public static int[] merge(int[] arr1,int[] arr2){ int[] big = new int[arr1.length + arr2.length]; int index = 0; //遍历第一个数组 for(int i = 0;i<arr1.length;i++){ big[index] = arr1[i]; index++; } //遍历第二个数组 for(int i = 0;i<arr2.length;i++){ big[index] = arr2[i]; index++; } return big; } //数组打印 public static void printArray(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i] + " "); } System.out.println(); } }
2
/* 在一个int型数组的末尾追加一个元素 int[] arr = {1,2,3,4}; int value = 88; 结果: arr = {1,2,3,4,88}; */ public class ArrayInsertDemo{ public static void main(String[] args){ int[] arr = {1,2,3,4}; int value = 88; print(arrayTailInsert(arr,value)); } // public static int[] arrayTailInsert(int[] arr,int value){ int[] res = new int[arr.length + 1]; for(int i = 0;i<arr.length;i++){ res[i] = arr[i]; } res[res.length - 1] = value; return res; } public static void print(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i] + " "); } System.out.println(); } }
3
/* 在数组的任意位置插入数据 */ public class ArrayInsertDemo2{ public static void main(String[] args){ int[] arr = {1,2,3,4,5}; int position = 0; int value = 88; int[] res = arrayAnyPositionInsert(arr,position,value); if(res != null){ print(res); }else{ System.out.println("位置非法"); } } // public static int[] arrayAnyPositionInsert(int[] arr,int position,int value){ int[] res = new int[arr.length + 1]; //判断position合法性 if(position > res.length || position < 0){ return null; } // for(int i = 0;i<res.length;i++){ if(i < position){ res[i] = arr[i]; }else if(i == position){ res[i] = value; }else{ res[i] = arr[i - 1]; } } return res; } public static void print(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i] + " "); } System.out.println(); } }
4
/* 删除元素:包含多个要删除的元素,都删除 */ public class ArrayDelElementDemo{ public static void main(String[] args){ int[] arr = {1,2,2,1,3,5,5}; int value = 50; print(delElement(arr,value)); } //删除指定的元素 public static int[] delElement(int[] arr,int value){ //判断数组中是否包含指定值 if(!isExist(arr,value)){ return arr; } //统计有多少个要删除的元素 int count = 0; for(int i = 0;i<arr.length;i++){ if(arr[i] == value){ count++; } } //创建新数组 int[] res = new int[arr.length - count]; //遍历原数组,把不等于value的值赋值给res int index = 0; for(int i = 0;i<arr.length;i++){ if(arr[i] != value){ res[index++] = arr[i]; } } return res; } //判断数组中是否包含指定值 public static boolean isExist(int[] arr,int value){ for(int i = 0;i<arr.length;i++){ if(arr[i] == value){ return true; } } return false; } public static void print(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i] + " "); } System.out.println(); } }
5
/* 抽取奇数索引的元素 */ public class GetOddIndexDemo{ public static void main(String[] args){ int[] arr = {1,2,3,4,5,6,7,8,9,10}; int[] res = getOddIndexElement(arr); print(res); } // public static int[] getOddIndexElement(int[] arr){ //计算奇数索引的个数 int len = arr.length / 2; //创建新数组 int[] res = new int[len]; //遍历原数组,把奇数索引的值赋值到新数组 int index = 0; for(int i = 0;i<arr.length;i++){ if(i % 2 != 0){ res[index++] = arr[i]; } } return res; } public static void print(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i] + " "); } System.out.println(); } }
6
/* 获取一个数组偶数索引的元素 */ public class GetEvenIndexDemo{ public static void main(String[] args){ int[] arr = {1}; int[] res = getEvenIndexElement(arr); print(res); } // public static int[] getEvenIndexElement(int[] arr){ //计算偶数索引的个数 int len = (arr.length + 1) / 2; int[] res = new int[len]; int index = 0; for(int i = 0;i<arr.length;i++){ if(i % 2 == 0){ res[index++] = arr[i]; } } return res; } public static void print(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i] + " "); } System.out.println(); } }
7
/* 数组的反转 */ public class ReverseDemo{ public static void main(String[] args){ int[] arr = {1,2,3,4,5}; System.out.println("反转之前"); print(arr); reverse(arr); System.out.println("反转之后"); print(arr); } // public static void reverse(int[] arr){ //计算交换的次数 int n = arr.length / 2; for(int i = 0;i<n;i++){ // int temp = arr[i]; arr[i] = arr[arr.length - 1 - i]; arr[arr.length - 1 - i] = temp; } } public static void print(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i] + " "); } System.out.println(); } }
8
/* java 中参数传递: 1.当参数是基本数据类型时,传递是数据的副本 2.当参数是引用数据类型时,传递是引用的副本 */ public class ParamPassDemo{ public static void main(String[] args){ /* int a = 10; int b = 20; change(a,b); System.out.println("方法外部:a = " + a +", b = " + b); */ int[] arr = {1,2,3}; System.out.println("方法调用前:"); print(arr); change(arr);// System.out.println("方法调用后:"); print(arr); } public static void change(int a,int b){ int temp = a; a = b; b = temp; System.out.println("方法内部:a = " + a +", b = " + b); } public static void change(int[] arr){//形参arr = 实参arr; for(int i = 0;i<arr.length;i++){ arr[i] = arr[i] * 2; } } public static void print(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i] + " "); } System.out.println(); } }
9
/* 二维数组定义格式: int[][] arr = new int[3][2]; int[][] arr = new int[2][]; arr[0] = new int[2]; arr[1] = new int[3]; int[][] arr = new int[][]{{1,2},{3,4},{5}}; int[][] arr = {{1,2},{3,4},{5}}; */ public class TwoDemArrayDemo{ public static void main(String[] args){ /* int[][] arr = new int[3][2]; System.out.println(arr[0]);//地址值 System.out.println(arr[0][0]);// int[][] arr2 = new int[2][]; arr2[0] = new int[2]; arr2[1] = new int[3]; System.out.println(arr2[0]);//地址值 System.out.println(arr2[0][0]);// int[][] arr = {{1,2},{3,4},{5}}; System.out.println(arr[0]);//地址值 System.out.println(arr[2][0]);//1 */ int[][] arr = {{1,2},{3,4},{5}}; for(int i = 0;i<arr.length;i++){ for(int j = 0;j<arr[i].length;j++){ System.out.print(arr[i][j] + " "); } System.out.println(); } } }
10
/* 二维数组求和 */ public class CountSumDemo{ public static void main(String[] args){ int[][] arr = new int[4][]; /* arr[0] = new int[3]; arr[1] = new int[5]; arr[2] = new int[9]; arr[3] = new int[12]; */ arr[0] = new int[]{1,2,5}; arr[1] = new int[]{4,7,9}; arr[2] = new int[]{3,44}; arr[3] = new int[]{99,2}; int count = 0; int sum = 0; for(int i = 0;i<arr.length;i++){ for(int j = 0;j<arr[i].length;j++){ count++; sum += arr[i][j]; System.out.print(arr[i][j] + " "); } System.out.println(); } System.out.println(sum); } }
11.
/* Car 类 */ public class Car{ //定义成员变量 String color; int year; int price; //定义成员方法 public void run(){ System.out.println("the car is running..."); } }
12
/* 删除int型数组指定位置的元素 */ public class ArrayDelAnyPosition{ public static void main(String[] args){ int[] arr = {1,2,3,4,5,5,5,5}; int position = 10; int[] res = delAnyPosition(arr,position); if(res != null){ print(res); }else{ System.out.println("位置非法"); } } // public static int[] delAnyPosition(int[] arr,int position){ //不合法 if(position >= arr.length || position < 0){ return null; } // int[] res = new int[arr.length - 1]; for(int i = 0;i<res.length;i++){ if(i < position){ res[i] = arr[i]; }else{ res[i] = arr[i + 1]; } } return res; } public static void print(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i] + " "); } System.out.println(); }