1.用于将一个数组的所有元素变成它原来的元素和它前一个元素的和,(第一个元素除外!)
思路:分两种,第一种是新建一个数组来存储,第二个用倒序遍历,然后从arr.length-1开始让当前的元素和前一个元素进行相加,然后在加个打印方法
/* * 定义一个方法:用于将一个数组的所有元素变成它原来的元素和它之前一个元素的和,第一个元素除外 * 即:{1,2,3,4,5} * 执行后{1,3,5,7,9} * 分成两种 * 方法中新建一个数组,方法中不重新建立数组 * */ package com.test; public class Practise1 { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5}; int[] newArray = change1(arr); printArray(newArray); change2(arr); printArray(arr); } // 第一种方式:新建一个数组 public static int[] change1(int[] arr) { int[] temp = new int[arr.length]; temp[0] = arr[0]; for (int i = 1; i < arr.length; i++) { temp[i] = arr[i] + arr[i - 1]; } return temp; } // 第二种方法:不新建数组 public static void change2(int[] arr){ for (int i = arr.length-1; i > 0; i--) { arr[i] = arr[i]+arr[i-1]; } } // 数组的打印方法 public static void printArray(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]); if(i != arr.length - 1){ System.out.print(","); } } System.out.println(); } }
2.计算二维数组的和
思路:双层for循环,arr[0][0]开始,求和在sum +=arr[i][j]打印输出即可,第一层循环用的是arr.length。第二层循环使用的是arr[i].length
/* 统计所有月份的销售记录之和: 第一季度:10,20,30 第二季度:40,50,60 第三季度:70,80,90 第四季度:30,30,30 */ public class TwoDemensionArrayDemo3{ public static void main(String[] args){ int[][] arr = { {10,20,30}, {40,50,60}, {70,80,90}, {30,30,30} }; int sum = 0; for(int i = 0;i<arr.length;i++){ for(int j = 0;j<arr[i].length;j++){ sum += arr[i][j]; } } System.out.println("总销售额是: " + sum); } }
3.计算二维数组的元素个数
思路:跟第二个题很像,再循环里面加个count++,即可
package com.test; import java.awt.Dialog; public class Practise3 { public static void main(String[] args) { int[][] arr ={ {10,20,30}, {40,50,60}, {20,30,20} }; int sum = 0; int count = 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.println("销售总额是: "+ sum); } }
4.定义一个方法,用于取出一个数组中所有偶数元素组成的数组!
思路:定义一个方法来统计偶数元素的个数,再定义一个变量index,利用上一个方法统计出的偶数项个数,来把元素的偶数项赋值给新的数组,注意要写成dest[ index++]=arr[i],需要索引自加
/* 定义一个方法,用于取出一个数组中所有偶数元素组成的数组! 首先计算偶数元素的个数,用个数创建一个新的数组, 遍历源数组,把符合条件的元素赋值给新数组 两次遍历: 1.求偶数元素的个数 2.赋值 */ public class ExtractEvenElementDemo{ public static void main(String[] args){ int[] src = {1,2,3,4,5,6,67,7,8}; printArray(src); int[] dest = extractEvenElement(src); printArray(dest); } public static void printArray(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]); if(i != arr.length - 1){ System.out.print(","); } } System.out.println(); } //返回值类型:int[] //形参列表:int[] src public static int[] extractEvenElement(int[] src){ //第一次遍历,求偶数元素的个数 int len = 0; for(int i = 0;i<src.length;i++){ if(src[i] % 2 == 0){ len++; } } //创建新数组 int[] dest = new int[len]; //第一次遍历,求偶数元素的个数 int index = 0; for(int i = 0;i<src.length;i++){ if(src[i] % 2 == 0){ dest[index++] = src[i]; } } return dest; } }
4.定义一个方法,用于将一个int数组的偶数索引的元素抽取出来.
思路:在计算新数组的长度时,索引为0时,个数为0;索引为1时,个数为1;所以长度是(length+1)/2,然后再算是否除以2的余数是0,有就记录下来进行赋值。
/* 定义一个方法,用于将一个int数组的偶数索引的元素抽取出来. 计算偶数索引元素的个数,创建新的数组, 遍历源数组,判断符合条件的,赋值给新数组 */ public class ExtractEvenIndexDemo{ public static void main(String[] args){ int[] arr = {1,2,3,4,5,6,7,8,9,0}; int[] dest = extractEvenIndex(arr); printArray(dest); } public static void printArray(int[] arr){ for(int i = 0;i<arr.length;i++){ System.out.print(arr[i]); if(i != arr.length - 1){ System.out.print(","); } } System.out.println(); } //返回值类型:int[] //形参列表:int[] public static int[] extractEvenIndex(int[] arr){ //计算偶数索引的个数 int[] dest = new int[(arr.length + 1) / 2]; //遍历源数组,判断 int index = 0; for(int i = 0;i<arr.length;i++){ if(i % 2 == 0){ dest[index++] = arr[i]; } } return dest; } }