学习笔记——java array
一、今日重点
1、键盘输入一个下标,获取指定位置的数字
2、输入一个数,数是从后往前加
3、增加数组内容(优化前,优化后)
二、学习内容
1、键盘输入一个下标,获取指定位置的数字
package com.jroft.afternoon; import java.util.Scanner; public class Ch01 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); /* 有一个数组 */ int [] arr=new int[]{22,33,24,64,357,32}; /* 键盘输入一个下标,获取指定位置的数字 */ 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 com.jroft.afternoon; import java.util.Scanner; public class Ch02 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int [] arr=new int[5]; /* 输入一个数,数是从后往前加 倒叙输入 第一次输入的值给[arr.length-1-0] 第二次输入的值给[arr.length-1-1] 第三次输入的值给[arr.length-1-2] 数组的最大下标=数组的长度-1 */ for (int i = 0; i <arr.length; i++) { System.out.println("请输入第"+(i+1)+"一个数"); int num = sc.nextInt(); arr[arr.length - 1] = num; } for (int i : arr){ System.out.println(i); } } }
3、增加数组内容(优化前,优化后)
优化前:
package com.jroft.afternoon; import java.util.Arrays; import java.util.Scanner; public class Ch03 { 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 ; } } } }
优化后:
package com.jroft.afternoon;
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[]{1, 2, 3, 4, 5};
int[] newArr = new int[arr.length * 2];
for (int j = 0; j < arr.length; j++) {
newArr[j] = arr[j];
}
arr = newArr;
main:while (true) {
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 temp = arr[index];
//把要插入的数据放到指定位置
arr[index] =num;
//判断要移位的数据的个数
for (int i = 0; i < arr.length - index; i++) {
arr[arr.length - 1]= arr[arr.length - 1-i];
}
arr[index + 1]=temp;
System.out.println("现在数组为:" + Arrays.toString(arr));
System.out.println("是否继续添加:1、是 2、否");
String flag=sc.next();
switch (flag){
case "1":
continue;
case "2":
System.out.println("当前数组为:" + Arrays.toString(arr));
break main ;
}
}
}
}

浙公网安备 33010602011771号