一、数组的概念
数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组里中的每一个值。声明数组变量时,需要指出数组类型(数组元素类型紧跟[ ])和数组变量的名字。
int[ ] a(推荐写法***因为这种写法将类型int[ ](整型数组)与变量名分开了***)
声明完需要初始化
a=new int[10];
[ ]中为数组的长度,10代表可以存10个元素。下标是从0~9;访问a[10]会出现异常“array index out of bounds“而终止执行
还有一种声明方法:
int a[ ]
二、重要方法
1.length
a.length代表数组a的长度
2.for each
for(int num:a)
System.out.print(num);
定义与数组元素相同数据类型的变量num,用于暂存数组中的每个元素,并执行相应的语句,这个是打印在屏幕上(可以是其他语句)。该语句的功能可以用for循环替代,但是该代码更简洁,不易出错(不用考虑下标)
3.Arrays.copyOf
将数组拷贝到新数组中
int []num=Arrays.copyOf(a,a.length);
参数1是需要拷贝的数组,参数二是新数组的长度;新数组比较长的话用相应的值填充int型为0,String型为null,boolean型为false;新数组比较短的话只拷贝前面的
a=Arrays.copyOf(a,a.length);亲测是正确的
Arrays.copyOfRange(a,int start,int end)
参数1是要拷贝的数组,参数2起始点,参数3结束点(不包含)
*********************************************
请无视下面这一段
*********************************************
****想起了a++,写一段****
int a=2;
a=a++;
System.out.println(a);
打印出来的a为2,为什么呢?
因为先赋值再执行++;注意下面是重点,是重点,是重点***赋值只执行一次***
就是说++以后的值不再赋给a了,
******懵逼很久的懂了没(我也是刚懂
)*******
4.rrays.toString(a);
假设(多久没听过这个词了,怀念)a为int[]型{10,5,6,7]
将a按字符串格式输出,格式为[10,5,6,7]
5.binarySearch(a,type v)
*******要先排序,要先排序,要先排序*********
二分查找,参数1为数组,参数二为要查找的元素,有返回相应下标(只返回第一个),无返回负数值,不固定
binarySearch(a,int start,int end,type v)
参数2开始位置(包含),参数3结束位置(不包含)
6.fill(a,type v)
使用与a中元素相同数据类型的v将a中所用元素替换(将所用元素值设为v)
7.equals(a,b)
a与b的长度要一致,逐一比较a与b中的元素,对应相同,返回true
三.数组排序
1.Arrays.sort(a);
快速排序,从小到大;可以排字符串,字典顺序,与长度无关,一个字符一个字符比,谁领先谁在前
2冒泡排序
代码示例
public static void bubbleSort(int [] arr){
for(inti=0;i<arr.length-1;i++){
for(intj=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
inttemp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
printArrays(arr);
}
3.选择排序
代码示例
public static void selectSort(int [] arr){
for(inti=0;i<arr.length-1;i++){//轮数
for(intj=i+1;j<arr.length;j++){//比较次数
if(arr[i]>arr[j]){
inttemp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
4.插入排序
代码示例
public static void insertSort(int [] arr){
inti,j,temp;
for(i=1;i<arr.length;i++){
temp=arr[i];
for(j=i-1;j>=0&&temp<arr[j];j--){//j=-1
arr[j+1]=arr[j];
}
arr[j+1]=temp;
}
printArrays(arr);
}
四、其他
遍历二维数据
for(int[]b:a)
for(int c:b)
(System.out.print(c));
打印二维数组
System.out.println(Arrays.deepToString(a));
输出格式[[],[],[],[],[],]
不断完善中,有不对请指出