mac os 做网站必应站长平台
数组的定义:
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;/*** 数组的作用:用来存储相同类型的数据* 以int类型数据为案例:数组用来存储int类型数据* 1》声明定义数组* int【】 arr 定义一个int类型的数组,名字为arr* int arr2【】* 如果数组只声明,没有后续操作,那么这个数组相当于没有定义* int 【】 arr3=null; 空 数组赋值为null和和什么都没有赋值 不一样的效果** 2》创建* arr=new int【4】; 给数组开辟了一个长度为4的空间* int 【】arr=new int【4】;声明和创建和为一句话* 3》赋值* arr[0]=12;* arr[1]=1255;* arr[2]=1;* arr[3]=232;* ====================arr[4]=16452;-------------数组索引越界** 4》使用*System.out.println(arr[1]);*数组的长度* System.out.println(arr.length);***/
public class TestArray02 {public static void main(String[] args) {}
}
数组的使用:
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;import java.util.Scanner;/*** 功能:键盘录入十个学生的成绩,求和,求平均数**/
public class TestArray03 {public static void main(String[] args) {int[] scores=new int[10];int sum=0;Scanner sc=new Scanner(System.in);for (int i = 0; i < 10; i++) {System.out.println("请录入第"+(i+1)+"个学生的成绩");int score=sc.nextInt();scores[i]=score;sum+=score;}System.out.println("十个学生的成句之和为"+sum);System.out.println("十个学生成绩平均数为:"+sum/10);//求取第6个学生的成绩
// System.out.println(scores[5]);//数组的遍历----》方式一
// for (int i = 0; i <= 9; i++) {
// System.out.println(scores[i]);
// }//增强for循环 ----------》方式二//对scores数组进行遍历,遍历出来每个元素都用int类型的num接收:
// int count=0;
// for(int num:scores){
// //每次豆浆num在控制台输出
// System.out.println("第"+count+"个学生的成绩为:"+num);
// }
/*** 增强for循环* 优点:代码简单* 缺点:单纯的增强for循环不能涉及跟索引相关的操作*/
//方式三:利用普通的for循环:逆向遍历:for (int i=9;i>=0;i++){System.out.println(scores[i]);}}
}
求取数组中的最大值
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;/*** 求最大值*/
public class TestArray04 {public static void main(String[] args) {//1.定义一个数组int[] arr = {12, 3, 7, 4, 8, 125, 9, 45, 666, 36};//2.求出数组中的最大值:int num = getMaxNum(arr);System.out.println("当前数组中最大的数为:" + num);}public static int getMaxNum(int[] arr) {int maxNum = arr[0];for (int i = 0; i < arr.length; i++) {if (arr[i] > maxNum) {maxNum = arr[i];}}return maxNum;}
}
查询元素对应的索引
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;public class TestArray05 {public static void main(String[] args) {int[] arr={12,34,56,7,3,10};System.out.println(arr[2]);//查询56对应的索引int index=getindex(arr,56);if (index!=-1){System.out.println("元素对应的索引:"+index);}else {System.out.println("查无此书!");}}public static int getindex(int []arr,int ele){int index=-1;//初始值只要不是数组的索引就行for (int i=0;i<arr.length;i++){if(arr[i]==ele){index=i;//只要找到了元素,那么index就变成ibreak;}}return index;}
}
数组添加元素
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;import java.util.Scanner;public class TestArray07 {public static void main(String[] args) {//给定一个数组,在数组下标为2的位置上添加一个元素91int[] arr = {12, 34, 56, 7, 3, 10};//输出增加元素前的数组System.out.print("增加元素前的数组:");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1) {System.out.print(arr[i] + ",");} else {System.out.print(arr[i]);}}
//从键盘接受数据Scanner sc=new Scanner(System.in);System.out.print("\n请录入你要添加元素的指定下标:");int index=sc.nextInt();System.out.print("请录入你要添加的元素:");int ele=sc.nextInt();//增加元素insertEle(arr,index,ele);
/*** arr[5]=arr[4];* arr[4]=arr[3];* arr[3]=arr[2];*///输出后增加元素后的数组System.out.print("\n增加元素后的数组:");for (int i = 0; i < arr.length; i++) {if (i != arr.length - 1) {System.out.print(arr[i] + ",");} else {System.out.print(arr[i]);}}}/*** 提起一个添加元素的方法:* 在数组的指定位置上添加一个指定的元素* 在哪个数组的哪个位置添加哪个元素* 不确定因素:形参:哪个数组,哪个位置,哪个元素* 返回值:无*/
public static void insertEle(int []arr,int index ,int ele){for (int i = arr.length - 1; i >= (index+1); i--) {arr[i] = arr[i - 1];}arr[index] = ele;}}
删除数组元素
/*** @Author zhengwang* @Date 2023/11/7 10:45* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray08* @Description: TODO 给定一个数组,删除下标为2元素* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;import java.util.Arrays;public class TestArray08 {public static void main(String[] args) {int[] arr = {12, 34, 56, 7, 3, 10};
//输出删除前的数组:System.out.println("删除前的数组" + Arrays.toString(arr));//删除
// arr[2]=arr[3];
// arr[3]=arr[4];
// arr[4]=arr[5];int index = 2;for (int i = index; i <= arr.length - 2; i++) {arr[i] = arr[i + 1];}arr[arr.length - 1] = 0;//输出删除后的数组System.out.println("删除后的数组" + Arrays.toString(arr));}
}
/*** @Author zhengwang* @Date 2023/11/7 11:02* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray09* @Description: TODO* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;import java.util.Arrays;public class TestArray09 {public static void main(String[] args) {int[] arr = {12, 34, 56, 7, 3, 10,34,45,56,7,666};
//输出删除前的数组:System.out.println("删除前的数组" + Arrays.toString(arr));//找到要删除的元素对应的索引即可int index = -1;for (int i=0;i<arr.length;i++){if (arr[i]==333){index=i;break;}}//删除
// arr[2]=arr[3];
// arr[3]=arr[4];
// arr[4]=arr[5];
// int index = 2;if (index!=-1){for (int i = index; i <= arr.length - 2; i++) {arr[i] = arr[i + 1];}arr[arr.length - 1] = 0;}else {System.out.println("根本没有你要删除的元素!");}//输出删除后的数组System.out.println("删除后的数组" + Arrays.toString(arr));}
}
可变参数
/*** @Author zhengwang* @Date 2023/11/7 14:09* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray12* @Description: TODO1)可变参数:作用提供了一个方法,参数的个数是可变的,解决了部分方法重载问题* int...num* double...num* boolean...num** 2)可变参数在JDK1.5之后加入的新特性*3)方法的内部对可变参数的处理跟数组是一样的*4)可变参数和其它数据一起作为形参的时候,可变参数一定要放到最后* 5)我们自己在写代码的时候,建议不要使用可变参数* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;public class TestArray12 {public static void main(String[] args) {
// method01(10);
// method01();
// method01(20,30,40);method01(30,40,50,60,70);
// method01(new int[]{11,22,33,44});}public static void method01(int num2,int...num){System.out.println("--------------1");for (int i:num){System.out.println(i+"\t");}System.out.println();System.out.println(num2);}}
数组的复制
/*** @Author zhengwang* @Date 2023/11/7 14:53* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray13* @Description: TODO* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;import java.util.Arrays;public class TestArray13 {public static void main(String[] args) {//给定一个数组:int[] arr={1,3,7,2,4,8};//toString:对数组进行遍历查看,返回的是一个字符串,这个字符串比较好看System.out.println(Arrays.toString(arr));//binarySearch:二分法查找,找出指定数组中的指定元素对应的索引//这个方法的使用的前提:一定要查看的是一个有序的数组://sort:排序----》升序Arrays.sort(arr);System.out.println(Arrays.toString(arr));System.out.println(Arrays.binarySearch(arr,4));int[] arr2={1,3,7,2,4,8};//copyOf:完成数组的复制int [] newArr=Arrays.copyOf(arr2,4);System.out.println(Arrays.toString(newArr));//copyOfRange:区间复制:int [] newArr2=Arrays.copyOfRange(arr2,1,4);//[1,4)---->1,2,3位置System.out.println(Arrays.toString(newArr2));//equals:比较两个数组的值是否一样:int[] arr3={1,3,7,2,4,8};int[] arr4={1,3,7,2,4,8};System.out.println(Arrays.equals(arr3,arr4));//trueSystem.out.println(arr3==arr4);// false ==比较左右两侧的值是否相等 比较的是左右的地址值,返回结果一定是false//fill:数组的填充int[] arr5={1,3,7,2,4,8};Arrays.fill(arr5,11);System.out.println(Arrays.toString(arr5));}
}
/*** @Author zhengwang* @Date 2023/11/7 16:19* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray14* @Description: TODO* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;import java.lang.reflect.Array;
import java.util.Arrays;public class TestArray14 {public static void main(String[] args) {//给一个源数组int [] srcArr={11,22,33,44,55,66,77,88};//给一个目标数组:int [] destArr=new int[10];//复制System.arraycopy(srcArr,1,destArr,3,3);//遍历查看目标数组:System.out.println(Arrays.toString(destArr));}
}
二维数组的遍历
/*** @Author zhengwang* @Date 2023/11/7 16:36* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray15* @Description: TODO--二维数组的定义与遍历* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;public class TestArray15 {public static void main(String[] args) {//定义一个二维数组int[][] arr=new int[3][];//本质上定义了一个一维数组,长度为3int[] a1={1,2,3};arr[0]=a1;arr[1]=new int[]{4,5,6,7};arr[2]=new int[]{9,10};//读取6这个元素
// System.out.println(arr[1][2]);//遍历二维数组//方式1:外层普通for循环+内层普通for循环:
// for (int i = 0; i <= 2; i++) {
// for (int j=0;j<arr[i].length;j++){
// System.out.print(arr[i][j]+"\t");
// }
// System.out.println();
// }//方式2:外层普通for循环+内层增强for循环
// for (int i=0;i<arr.length;i++){
// for (int num:arr[i]){
// System.out.print(num+"\t");
// }
// System.out.println();
// }//方式3:外层增强for循环+内层增强for循环
// for (int[]a:arr){
// for (int num:a){
// System.out.print(num+"\t");
// }
// System.out.println();
// }//方式5:外层增强for循环+内层普通for循环for (int[]a:arr){for (int i=0;i<a.length;i++){System.out.print(a[i]+"\t");}System.out.println();}}
}
/*** @Author zhengwang* @Date 2023/11/7 16:57* @PackageName:The_First_Stage.The_beginner_level_Java_SE.Arrawy* @ClassName: TestArray16* @Description: TODO* @Version 1.0*/
package The_First_Stage.The_beginner_level_Java_SE.Arrawy;public class TestArray16 {public static void main(String[] args) {int[][] arr=new int[3][2];//本质上:定义一维数组,长度为3,每个数组“格子”中,有一个默认的长度为2的数组arr[1]=new int[]{1,2,3,4};//数组遍历for (int[] a:arr){for (int num:a){System.out.print(num+"\t");}System.out.println();}}
}