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)); } }
代码运行结果:

###学习心得;
今天对近一周的知识进行了梳理与复习,通过老师的讲解对每行代码意思都能够理解,但是对写代码还没有什么思路,需要多加练习,通过对几个案例的分析以及整理,对所学的知识点有了更深一步的认识。
###掌握情况:理解
浙公网安备 33010602011771号