lyt0612

导航

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));
    }
}

代码运行结果:

 

###学习心得;

今天对近一周的知识进行了梳理与复习,通过老师的讲解对每行代码意思都能够理解,但是对写代码还没有什么思路,需要多加练习,通过对几个案例的分析以及整理,对所学的知识点有了更深一步的认识。

###掌握情况:理解

posted on 2022-07-16 18:41  小仙女吖~  阅读(26)  评论(1编辑  收藏  举报