关于数组
格式: 数据类型 数组名 [ ]
数据类型 [ ] 数组名
数组定义长度的方法
1: int num[]=new int[5]; 定义长度为5,后期不能更改
2: int num[]={1,4,5,61}; 直接定义初起始值,大小就是初始值的长度
3: int num3[]=new int[]{1,2,4,5};效果一样,但过于复杂,不建议使用
一般情况下都是用new操作符(第一种方法)来定义数组
数组的一些使用方法
1: 数组的复制
一开始 定义两个数组,想当然的以为可以使用
int num2[] =num 方法来复制数组,
然而这从意义上来讲并不是对数组的复制,而是
两个变量同时指向一个堆的地址
对于数组的复制,有一种Arrays.copyOf(num, num.length)
的方法
对数组进行直接的复制
public static void main(String[] args) {
//复制数组
int i=5;
int j =i;
j=6;//输出时j等于6了,但是不影响i的值
System.out.println(i+" "+j);
int num[]= {1,23,54,2,61};
//int num2[] =num;//两个变量同时指向一个堆的地址
int num2[]=Arrays.copyOf(num, num.length);//复制一个数组
num2[0]=10;//改值
for(int a=0;a<num.length;i++) {
System.out.println(num[i]+" ");
}
System.out.println();
System.out.println("--------");
num2[0]=10;//下标为0值为10
for(int a=0;a<num.length;i++) {
System.out.println(num[i]+" ");
}
}
sz1.png
关于数组的查询和排序功能
查询:Arrays.binarySearch(num, index)
关于该功能:该功能给的是数字在该数组的下标,[图片上传中...(sz4.png-518a60-1589540141915-0)]
如果输入的数字并没有在数组中的话,那么输出的将是负数
排序:Arrays.sort(num);
public static void main(String[] args) {
int num[]= {1,43,5,6,232};
for(int a=0;a<num.length;a++) {
System.out.print(num[a]+" ");
}//先遍历循环一遍,再与排序后做对比
System.out.println();
Arrays.sort(num);//排序
for(int a=0;a<num.length;a++) {
System.out.print(num[a]+" ");
}//排序后
System.out.print("请输入要查找的数字");
Scanner input=new Scanner(System.in);
int index = input.nextInt();
System.out.println("结果为"+Arrays.binarySearch(num, index));//输出结果是该数字在数组的下标
//但是如果输入的该数字没在数组中,那么会输出负数
}
sz4.png
网友评论