欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Java代码-------数组array(尚马day03)

时间:2023-06-15

(1)

public class ArrayDemo1 { public static void main(String[] args){ //使用数组维护多个学生的成绩 //创建数组 数据类型[] 变量/数组名称/引用 = new 数据类型[length]; double[] scoreArray = new double[3]; //在数组中,每个数据元素都有索引,index(0-length-1) //访问(输出)数组元素:数组名称[index] double firstData = scoreArray[0]; System.out.println("第一个数据" + firstData); //访问第一个数组元素,并打印出.------0.0 System.out.println("第二个数组元素:" + scoreArray[1]);//访问第二个数组元素,并打印出 //添加数组元素(修改同理) scoreArray[0] = 100; }}

(2)

public class ArrayDemo2 { public static void main(String[] args) { int[] arry = new int[5]; arry[0] = 100; arry[1] = 200; //获得数组长度 变量.length System.out.println("获得数组的长度" + arry.length); //循环遍历数组元素-----while int index = 0; while (index < arry.length) { System.out.println(arry[index++]); } //循环遍历数组元素-----for(普通for循环) for (int index = 0; index < arry.length; index++) { System.out.println(arry[index++]); } int count = 1; for(int a:arry){ System.out.println("第" + count + "个数据元素是" + a); count++; } }}

(3)

public class ArrayDemo3 { public static void main(String[] rags){ String[] nameArray = new String[5]; //创建数组 int length = nameArray.length; //获得数组长度 //新增数据 nameArray[0] = "张三"; nameArray[1] = "李四"; nameArray[2] = "王五"; nameArray[3] = "赵六"; nameArray[4] = "陈七"; //遍历查看,优先使用for for (String name : nameArray) { //若用增强for,可用nameArray.for System.out.println("学生的姓名是:" + name); } }}

(4)

public class ArrayDemo4 { public static void main(String[] args){ //可以两步走创建语法 int[] array; array = new int[3]; //可静态初始化数组,数组类型[] 数组名称 = {数据1,数据2,...数据n}; int[] array = {1,2,3}; //对静态初始数组,若两步走,要加new 数据类型[] int[] array; array = new int[]{1,2,3}; }}

(5)

public class ArrayDemo5 { public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.println("请输入学生个数:"); int num = input.nextInt(); double sum = 0; double[] scoreArray = new double[num]; for (int i = 1; i <= num; i++) { System.out.println("请录入第" + (i) + "个学生的成绩"); double score = input.nextDouble(); sum += score; scoreArray[i-1] = score; //录入的每个成绩存入数组中 } System.out.println("---------------" ); System.out.println("学生的总分为:" + sum); //循环遍历打印 int count = 1; for (double studentscore : scoreArray) { System.out.println("第" + (count++) + "个学生的成绩为:" + studentscore); } input.close(); }}

(6)

public class ArrayDemo6 { public static void main(String[] args){ //基本数据类型比较的是数据 引用数据类型比较的是内存地址值 //比较2个数组元素是否一致,数组也是引用型,所有的引用数据类型都可以用equals int[] array1 = new int[]{1,2,3}; //不分两步写可省略new int[] int[] array2 = {1,2,3}; System.out.println(array1 == array2); //false,因为两个数组的内存地址值不同 System.out.println(array1.equals(array2) ); //false,也不行 int length1 = array1.length; int length2 = array2.length; if(length1 != length2){ System.out.println("这2个数组元素不同"); return; } //比较相同索引下的元素是否一致 for (int index = 0; index < length1; index++) { if(array1[index] != array2[index]){ System.out.println("这2个数组元素不同"); return; } } System.out.println("这2个数组元素相同"); }}

(7)

public class ArrayDemo07 { //修改class名可直接修改,然后alt+回车,选择rename file。或者快捷键shift+F6 public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.println("请录入学生个数:"); int studentNum = input.nextInt(); int[] scoreArray = new int[studentNum]; for (int i = 0; i < studentNum; i++) { System.out.println("请录入第" + (i+1)+ "个学生成绩:"); int studentscore = input.nextInt(); scoreArray[i] = studentscore; } int max = scoreArray[0]; int min = scoreArray[0]; //使用普通for 数组名.length+for for (int index = 0; index < scoreArray.length; index++) { max = Math.max(max,scoreArray[index]); //也可不用三元运算符 min = Math.min(min,scoreArray[index]); } System.out.println("成绩最高分为:" + max); System.out.println("成绩最低分为:" + min); input.close(); }}

---------------------------------------------------------------------------------------------------------------------------------也可直接在一个for里求max      min

public class ArrayDemo07methond2 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请录入学生个数:"); int studentNum = input.nextInt(); int[] scoreArray = new int[studentNum]; int max = 0; int min = 0; for (int i = 0; i < studentNum; i++) { System.out.println("请录入第" + (i + 1) + "个学生成绩:"); int studentscore = input.nextInt(); scoreArray[i] = studentscore; if(i == 1){ max = studentscore; min = studentscore; continue; } max = Math.max(max,scoreArray[i]); // min = Math.min(min,scoreArray[i]); } input.close(); }}

(8)

//若被转入元素的数组空间充足(要判断)public class ArrayDemo08 { public static void main(String[] args){ //数组元素是连贯的 String[] arr1 = new String[5]; arr1[0] = "a"; arr1[1] = "b"; arr1[2] = "c"; String[] arr2 = {"1"}; //需要将arr2的数据存储到arr1里,核心是找到arr1里第一个null值出现的地方 int length = arr1.length; int index = 0; for(;index < length;index++){ if(arr1[index] == null){ break; } } //赋值 for (String s : arr2) { if( s== null){ //数组二若出现null,则后面全是null break; } arr1[index++] = s; } //遍历数组的所有元素 //Array java.util.Arrays 提供了很多操作数组元素的功能 //将数组里的元素转换成字符串进行输出 Arrays.toString(数组名) System.out.println("arr1的元素" + Arrays.toString(arr1)); }}

//若被转入元素的数组空间不充足(要判断)--------------------------------需要手动扩容

public class ArrayDemo08 { public static void main(String[] args){ //数组元素是连贯的 String[] arr1 = new String[5]; arr1[0] = "a"; arr1[1] = "b"; arr1[2] = "c"; String[] arr2 = {"1","2","3"}; //找到arr1里第一个null值出现的地方 int length = arr1.length; int index = 0; for(;index < length;index++){ if(arr1[index] == null){ break; } } //判断arr1剩余空间是否充足 int leftSpace = length - index; int length2 = arr2.length; if(length2 > leftSpace){ //空间不足,需要手动扩容,创建新的数组,扩大的空间自己定义 String[] newArray = new String[index+length2]; for(int i = 0;i < index;i++){ newArray[i] = arr1[i]; //把要扩容的数组的元素移到新的数组中 } arr1 = newArray; //引用类型赋值,赋的是内存地址值,这样就完成了arr1的扩容 } for (String s : arr2) { if( s== null){ break; } arr1[index++] = s; } System.out.println("arr1的元素" + Arrays.toString(arr1)); }}

(9)

public class ArrayDemo09 { public static void main(String[] args){ int[] array = {1,2,3,4,5}; //以上手动扩容过程可用一句话执行 array = Arrays.copyOf(array,array.length*2); //数组扩容 System.out.println(Arrays.toString(array)); //数组元素输出 }}

(10)

public class ArrayDemo10 { public static void main(String[] args){ //数组元素是连贯的,空间是固定的。删除数组元素后,其后若有非空元素。则向前循环移动。(非空元素前不会有空元素,即连贯) //如下:若删除数组元素a。 String[] array = {"a","b","c",null}; int length = array.length; //找到a元素所在的索引位置 for(int index = 0;index < length;index++){ if("a".equals(array[index])){ array[index] = null; //可省略,因为接下来右边的元素要循环向左移动 for(int j = index;j < length - 1;j++){ //遵循数组元素连贯原则,将非空元素左移 array[j] = array[j + 1]; } array[length-1] = null; //最后一个元素左移之后,把最后一个元素也赋值为空 } } System.out.println("删除之后" + Arrays.toString(array)); }}

(11)

public class ArrayDemo11 { public static void main(String[] args){ int[] array = {89,100,0,78}; Arrays.sort(array); System.out.println(Arrays.toString(array)); }}

//结果为{0,78,89,100}

(12)

public class ArrayDemo12 { public static void main(String[] args){ //创建二维数组 int[][] array = new int[3][4]; //初始化二维数组,代表array最多有三个元素(一维数组),每个一维数组元素最多4个 //获得数组元素 数组名称[index] int[] first = array[0]; //二维数组的元素是一维数组 int[] second = array[1]; int[] third = array[2]; System.out.println("获得二维数组的第一个元素:" + Arrays.toString(first)); //[0,0,0,0] //将二维数组元素转成字符串 Arrays.deepToString(数组名) System.out.println(Arrays.deepToString(array)); //{[0,0,0,0],[0,0,0,0],[0,0,0,0,]} //修改第一个一维数组的第一个数据 100 //array[0][0] = 100; int[] first1 = array[0]; first1[0] = 100; //分两步也可以 //遍历数组 for(int index1 = 0;index1 < array.length;index1++){ for(int index2 = 0;index2 < array[index1].length;index2++){ System.out.println("第" + index1 +"个一维数组的第" + index2 + "个元素为:" + array[index1][index2] ); } } //用增强for遍历 int count1 = 1; for (int[] ints : array) { //array.for int count2 = 1; for (int anInt : ints) { //ints.for System.out.println("第" + count1 +"个一维数组的第" + count2 + "个元素为:" + anInt ); count2++; } count1++; } }}

(13)

public class ArrayDemo13 { public static void main(String[] args) { String[][] strArray = new String[3][]; //初始化二维数组,并声明3个一维数组。 // 但接下来要初始化每一个一维数组,因为现在每一个一维数组元素为null,要操作会报空指针 strArray[0] = new String[1]; //第一个一维数组为1个长度 strArray[1] = new String[2]; strArray[2] = new String[3]; }}

(14)

public class ArrayDemo14 { public static void main(String[] args){ int[][] a; //先声明 a = new int[][]{ {},{}, {} }; //再赋值 }

(15)

public class ArrayDemo15 { public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.println("录入班级个数:"); int classroomNum = input.nextInt(); String[][] nameArray = new String[classroomNum][]; for (int num = 1; num <= classroomNum; num++) { System.out.println("请录入第" + num + "个班级的学生个数:"); int studentNum = input.nextInt(); nameArray[num - 1] = new String[studentNum]; //初始化每一个一维数组!!!很重要 for (int num1 = 1; num1 <= studentNum; num1++) { System.out.println("请录入第" + num + "个班级第" + num1 + "个学生的姓名:"); String name = input.next(); nameArray[num - 1][num1 - 1] = name; } } //打印输出每个班级每个学生的姓名 for (int index = 0; index < nameArray.length; index++) { for (int index1 = 0; index1 < nameArray[index].length; index1++) { System.out.println("第"+(index+1)+"个班级第"+(index1+1) +"个学生的姓名:"+nameArray[index][index1] ); } } input.close(); }}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。