java8数组
public class jh_01_为什么需要数组 { public static void main(String[] args) { int [] arr = new int[5]; // int a = 10; } }
import java.util.Scanner; public class jh_02_如何使用数组 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int [] arr = new int[5]; for (int i= 0; i < arr.length; i++) { System.out.println("shuru"); arr[i] = sc.nextInt(); } // arr[0] = 99; // arr[1] = 98; // arr[2] = 97; // arr[3] = 96; // arr[4] = 95; // arr = null;//NullPointerException //System.out.println(arr.length); System.out.println(arr[0]); System.out.println(arr[1]); System.out.println(arr[2]); System.out.println(arr[3]); System.out.println(arr[4]); // System.out.println(arr[-5]);//ArrayIndexOutOfBoundsException System.out.println("*********************"); for(int i = 0;i< 5;i++ ) { System.out.println(arr[i]); } System.out.println("*********************"); for(int i = 0;i< arr.length;i++ ) { System.out.println(arr[i]); } int sum =0; for(int i = 0;i< arr.length;i++ ) { sum += arr[i]; } String [] name= new String[5]; name[0] = "张三"; name[1] = "李四"; name[2] = "张三"; name[3] = "张三"; name[4] = "张三"; System.out.println(name[0]); System.out.println(name[1]); System.out.println(name[2]); System.out.println(name[3]); System.out.println(name[4]); System.out.println("********************"); for (int i = 0; i < name.length; i++) { System.out.println(name[i]); } System.out.println("********************"); for (int i = 0; i < 5; i++) { System.out.println(name[i]); } } }
public class jh_03_数组赋值 { public static void main(String[] args) { // Scanner sc = new Scanner(System.in); // int [] arr = new int [5]; // for (int i= 0; i < arr.length; i++) { // System.out.println("shuru"); // arr[i] = sc.nextInt(); // } int [] arr03 = new int []{1,2,3,4,5}; int [] arr02 = {1,2,3,4,5}; for (int i = 0; i < arr02.length; i++) { if(i!=arr02.length-1 ) { System.out.print(arr02[i]+", "); }else { System.out.print(arr02[i]); } } } }
public class jh_04_现场编程 { /* * 有一个数列:8,4,2,1,23,344,12 * 循环输出数列的值 * 求数列中所有数值的和 * 猜数游戏:从键盘中任意输入一个数据, * 判断数列中是否包含此数 */ public static void main(String[] args) { int [] arr={8,4,2,1,23,344,12}; // 循环输出数列的值---迭代. 遍历. for (int i = 0; i < arr.length; i++) { System.out.println(i); } System.out.println("*******************"); // 求数列中所有数值的和 // 数据类型 元素: for (int i : arr) { System.out.println(i); } int sum = 0; for (int i = 0; i < arr.length; i++) { sum += arr[i]; } System.out.println(sum); System.out.println("*******************"); int num = 1; boolean flag = false; for (int i = 0; i < arr.length; i++) { if (arr[i] == num) { flag = true; break; } } if (flag) { System.out.println("存在"); } else { System.out.println("不存在"); } } }
public class jh_05_学员操作_显示商品名称2_1 { // int [] arr={8,4,2,1,23,344,12}; // ''"" ''''gad'' public static void main(String[] args) { String []arr = {"xiaogege","dajiejie","xiaoayi"}; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } System.out.println("**********************"); for (String str : arr) { System.out.println(str); } System.out.println(); double []arr01={1.75,1.73,1.79}; for (int i = 0; i < arr01.length; i++) { System.out.println(arr01[i]); } System.out.println("*********************"); for (double db : arr01) { System.out.println(db); } } }
import java.util.Scanner; public class jh_06_学员操作_购物金额结算 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 长度为五的容器,存储金额。double double []arr = new double[5]; for (int i = 0; i < arr.length; i++) { System.out.println("请输入第"+ i +"个成绩"); arr[i] = sc.nextInt(); } System.out.println("序号 \t成绩:"); // 罗列输入的数值: for (int i = 0; i < arr.length; i++) { System.out.println((1+i)+"\t"+arr[i]); } } }
import java.util.Arrays; public class jh_07_数组排序2_1 { public static void main(String[] args) { // Arrays类的sort()函数: 对数组进行升序排列 // 对象名.函数名()。sc.nextInt(); // 类名.函数名(); Arrays.sort(容器名称); int [] arr = {2,5,4,3,1,6,9,8,7}; for(int i : arr) { System.out.print(i+", "); } System.out.println(); // Arrays类的sort()函数 Arrays.sort(arr); for(int i : arr) { System.out.print(i+", "); } System.out.println(); } }
public class jh_08_求容器最大值 { public static void main(String[] args) { /* * 1:把第一个元素。arr[0]默认成最大的。---参照物。 * 2:后面的元素依次和参照物做比较。 * 3:如果后面的元素比参照物大。就把 * 后面的赋值给参照物。 */ int [] arr = {2,5,4,3,1,6,9,8,7}; // 1:把第一个元素。默认成最大的 // int max = arr[0]; // // for (int i = 1; i < arr.length; i++) { // if(arr[i] > max) { // // 把当前的元素赋值给max // max = arr[i]; // } // } // System.out.println(max); int min = arr[0]; for (int i = 1; i < arr.length; i++) { if(arr[i] < min) { // 把当前的元素赋值给max min = arr[i]; } } System.out.println(min); } }
public class jh_09_查找指定元素出现的位置 { public static void main(String[] args) { /* * 查找指定元素出现的位置 * 3 --- index * 如果不存在。就用-1表示。 */ int []arr = {2,5,4,3,1,6,9,8,7}; int index = getIndex(arr,19); System.out.println(index); // 指定元素 // int num = 19; // int index = -1; // // 1:依次取出每一个元素,并做比较 // for (int i = 0; i < arr.length; i++) { // if(num == arr[i]) { // index = i;// 当前i的值是不是就是index位置。 // } // } // System.out.println(index); // } /* * 1:返回值类型。int * 2:参数列表。int[] arr,int num */ } public static int getIndex(int [] arr,int num) { for (int i = 0; i < arr.length; i++) { if(num == arr[i]) { return i; } } return - 1; } }
import java.util.Scanner; public class jh_10_学员操作求最低价格 { private static int i; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int [] arr = new int [4]; for (int i = 0; i < arr.length; i++) { System.out.println("请输入值: "); arr[i] = sc.nextInt(); } int min = arr[0]; for (int i = 1; i < arr.length; i++) { if (arr[i] < min) { min = arr[i]; } } System.out.println(arr[i]); } }
import java.util.Arrays; import java.util.Scanner; public class jh_11_插入算法 { /* * 有一组学员的成绩{99,85,82,63, 60}, 将它们按升序排列。要增加一个学员的成绩, 将它插入成绩序列,并保持升序。 */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 有一组学员的成绩{99,85,82,63, 60}, int[] oldArray = { 99, 85, 82, 63, 60 }; // 将它们按升序排列。 Arrays.sort(oldArray); // 创建一个容器,长度是原数组长度加1; int[] newArray = new int[oldArray.length + 1]; // 数组copy 调用对应的函数,或者简单写下。 for (int i = 0; i < oldArray.length; i++) { newArray[i] = oldArray[i]; } // 看下效果,迭代新容器 for (int i = 0; i < newArray.length; i++) { System.out.println(newArray[i]); } System.out.println("*************************"); /* *1: 给出要插入的数值 num
*2: 找到要插入的位置。
*3: 从要插入的位置依次向后挪元素。
*4: 把num的值覆盖到index位置处
*5: 如果插入的值比容器中最大的值还大,应该插入到最后。
* 所以index的初始值默认给newArray.length-1; */ // 1:给出要插入的数值 num System.out.println("给出要插入的数值:");// 77 int num = sc.nextInt(); int index = newArray.length - 1; // 2:找到要插入的位置 for (int i = 0; i < newArray.length; i++) { if (newArray[i] > num) { // 记录当前位置 index = i; break; } } // 3:从要插入的位置依次向后挪元素。 // arr [8]= arr [7] // for(int i = index;i<newArray.length;i++) { //// 倒数第一个 = 倒数第二个 // newArray[newArray.length - 1- 0] = newArray[newArray.length - 1 - 1]; // // // // // } for (int i = newArray.length - 1; i > index; i--) { newArray[i - 0] = newArray[i - 1]; } // 看效果 for (int i = 0; i < newArray.length; i++) { System.out.println(newArray[i]); } System.out.println("************"); // 4:把num的值覆盖到index位置处 newArray[index] = num; // 看效果 for (int i = 0; i < newArray.length; i++) { System.out.println(newArray[i]); } } }
public class jh_12_如何对变量ab的值进行交换 { public static void main(String[] args) { int a = 10; int b = 8; int temp; temp = a; a = b; b = temp; System.out.println(a); System.out.println(b); } }
public class jh_13_冒泡排序 { public static void main(String[] args) { /* * 对数组中相邻的两个数进行比较, * 把数组元素从头到尾比较一次后 * 找到最大的那个值放到数组的末尾. */ int[] arr = { 54, 53, 12, 32, 56, 17 }; for (int j = 0; j < arr.length-1; j++) { for (int i = 0; i < arr.length-1-j; i++) { if (arr[i] > arr[i + 1]) { int temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; } } } for (int i : arr) { System.out.println(i); } } }
public class jh_14_选择排序 { /* * int[] arr = * { 54, 53, 12, 32, 56, 17 }; */ public static void main(String[] args) { int[] arr = { 54, 53, 12, 32, 56, 17 }; for (int i = 0; i < arr.length - 1; i++) { for (int j = arr.length - 1; j > 0; j--) { if (arr[j] < arr[j - 1]) { int temp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = temp; } } } for (int j : arr) { System.out.println(j); } } }
import java.util.Arrays; //import java.util.Scanner; public class jh_15_二分查找 { public static void main(String[] args) { // Scanner sc = new Scanner(System.in); int[] arr = { 54, 53, 12, 32, 56, 17 }; Arrays.sort(arr); // 12,17,32,53,54,56 int num = 50; int startIndex = 0; int endIndex = arr.length - 1; for (;;) { int midIndex = (startIndex + endIndex) / 2; int midValue = arr[midIndex]; if (num > midValue) { startIndex = midIndex + 1; } else if (num < midValue) { endIndex = midIndex - 1; } else { System.out.println("找到了"); break; } if (startIndex > endIndex) { System.out.println("不存在"); break; } } } }
public class jh_16_二维数组的声明 { public static void main(String[] args) { int a; // int [] arr; // int arr[]; int [][] intArray; double doubleArray[][]; String [] strArray[]; } }
public class jh_17_二维数组的应用场景 { public static void main(String[] args) { // 学生成绩表. int [] arr = new int [3]; int [][] Array = new int[3][3]; // a[0]--- // b[1][2] // [3]表示b里面有3个一维数组 // 长度。 // {1,2,3,4,5,6}; // {{1},{4,5,6},{7,8}}; int [][] c = new int[3][5]; int [][] d = new int[3][]; d[0] = new int[3]; d[1] = new int[4]; d[2] = new int[5]; // {{1,2,3},{4,5,6,7},{1,1,1,1,1}} int [][] e = new int [3][3]; e[0][0] = 55; e[0][1] = 55; e[0][2] = 55; e[1][0] = 55; e[1][1] = 55; e[1][2] = 55; e[2][0] = 55; e[2][1] = 55; e[2][2] = 55; for(int i = 0;i<3;i++) { for(int j=0;j<3;j++) { System.out.println(e[i][j]); } } System.out.println(e[0][0]); System.out.println("***************"); for (int[] is : e) { for(int i :is) { System.out.println(i); } } } }
public class jh_18_二维数组的应用二 { public static void main(String[] args) { int [] a = {1,2,3,4,5,6}; System.out.println(a.length); int [][] arr = {{1,2,3},{4,5,6},{7,8,9}}; //每一个小容器长度。 // 先拿到小容器。arr[i] // 在取小容器长度。arr[i].length System.out.println(arr.length); System.out.println(arr[1].length); } }
public class jh_19_循环输出二维数组的内容 { public static void main(String[] args) { int[][] arr = {{1,2,3},{4,5},{7,8,9}}; for(int i = 0;i<arr.length;i++) { for(int j =0;j<arr[i].length;j++) { System.out.println(arr[i][j]); } } // for( int [] i :arr) { // for(int e :i) { // System.out.println(e); // } // } /* * 1:先取出大容器里面的每一个小容器。 * 2:再取出每一个小容器里面的元素。 */ } }
import java.util.Scanner; public class jh_20_二维数组编程练习 { /* * 在一个二维数组中存放了三名学生的语文和 * 数学的成绩,从键盘输入三名学生的成绩存 * 储到二维数组中,分别求语文和数学的总 * 成绩及平均分并输出。 */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); /* * 任务 * 1、定义一个三行两列的整型二维数组intArray * 2、从键盘输入学生成绩,要求输入顺序与效果图一致。 * 3、求语文的总成绩和平均分 * 4、求数学的总成绩和平均分 */ // 1、定义一个三行两列的整型二维数组intArray int[][] intArray = new int[3][2]; for (int j = 0; j < intArray.length; j++) { for (int i = 0; i < intArray[j].length; i++) { if (i == 0) { System.out.println("请输入第" + (j + 1) + "个学生的语文成绩"); intArray[j][i] = sc.nextInt(); } else { System.out.println("请输入第" + (j + 1) + "个学生的数学成绩"); intArray[j][i] = sc.nextInt(); } } } for (int[] is : intArray) { for (int i : is) { System.out.print(i + ", "); } System.out.println(); } // 求每个学生的总成绩 int chinese = 0; int math = 0; for(int i = 0;i<intArray.length;i++) { int sum = 0; for(int j = 0;j<intArray[i].length;j++) { sum += intArray[i][j]; // 判断 // if(j==0) { // chinese += intArray[i][j]; // }else { // math += intArray[i][j]; // } } System.out.println(sum); } System.out.println(chinese); System.out.println(math); // intArray[0][0] // intArray[0][1] } }