2022-07-16 第八组 刘禹彤 学习笔记
打卡第八天
今天对近期所学的知识进行了巩固和复习
目录:1.获取指定下标的数组
2.倒序输入
3.倒序将数据插入数组
4..数组中数据进行移位和扩容
###学习笔记
1.获取指定下标的数组
int [] arr = new int[]{4,58,69,14,22,-1}; System.out.println("请输入一个下标:"); int index = sc.nextInt(); if(index >= 0 && index <= arr.length - 1){ System.out.println("对应位置的值是:" + arr[index]); }else{ //条件 <0 || >5 //越界 System.out.println("你输入的数据有误,无法获取。。。"); }
代码结果:
2.倒序输入
package hi; import java.util.Scanner; public class Ch03 { public static void main(String[] args) { int [] arr = new int[5]; /*输入一个数,数是从后往前加 * 倒序输入 * 第一次输入的值给arr[arr.length-1] * 第二次输入的值给arr[arr.length-2]*/ Scanner sc = new Scanner(System.in); int j = 0; for (int i = 0; i < arr.length; i++) { System.out.println("请输入第" + (i + 1) + "个数"); int num = sc.nextInt(); arr[arr.length - 1 - i] = num; } for (int i : arr) { System.out.println(i); } } }
代码结果:
3.倒序将数据插入数组
package hi;
import java.util.Arrays;
import java.util.Scanner;
public class Ch04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int [] arr = new int[2];
int i = 0;
main:while(true){
System.out.println("请输入数据:");
int num = sc.nextInt();
arr[arr.length - 1 - i] = num;
i++;
if (i >= arr.length){
int [] newArr = new int[arr.length * 2];
for (int j = 0; j < arr.length; j++) {
// 数组中的数据的复制
newArr[newArr.length - 1 -j] = arr[arr.length - 1 - j];
}
// 重新赋值
arr = newArr;
}
System.out.println("是否继续添加:1.是 2.否");
String flag = sc.next();
switch(flag){
case "1":
continue;
case"2":
System.out.println("当前数组为:" + Arrays.toString(arr));
break main;
//强制退出
// System.exit(-1);
}}
}
}
代码运行结果:
4.数组中数据进行移位和扩容
package hi; import java.util.Arrays; import java.util.Scanner; public class Ch05 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int [] arr = new int []{1,2,3,4,5}; System.out.println("请输入要插入的下标:"); int index = sc.nextInt(); System.out.println("请输入要插入的数据:"); int num = sc.nextInt(); /*1.因为数组已满,需要扩容 * 2.找到要插入数据的位置 * 3.插入位置后面的数据需要向后移位*/ //定义一个临时变量,存储原来index位置的元素 // int temp = arr[index]; // //把要插入的数存到指定的位置 // arr[index] = num; // //原来位置的后面的那个数向后移一位 // arr[index + 2] = arr[index + 1]; // arr[index +1] = temp; //插入一个新元素 int [] newArr = new int[arr.length * 2]; for (int i = 0; i < arr.length; i++) { newArr[i] = arr[i]; } arr = newArr; //把位置原始数据保存起来 int temp = arr[index]; //把要插入的数据放到指定位置 arr[index] = num; //判断要移位的数据的个数 for (int i = 1; i < arr.length - index; i++) { //后面的数依次往后移位 arr[arr.length - i] = arr[arr.length - 1 - i]; } arr[index + 1] = temp; System.out.println(Arrays.toString(arr)); } }
代码运行结果:
###学习心得;
今天对近一周的知识进行了梳理与复习,通过老师的讲解对每行代码意思都能够理解,但是对写代码还没有什么思路,需要多加练习,通过对几个案例的分析以及整理,对所学的知识点有了更深一步的认识。
###掌握情况:理解