一.数组
具有相同类型的数据的集合。
定义格式如下:
int[] arr = new int []
int[] arr = {1,3,4};
int[] arr = new int[100];
int[] arr = new int[]{1,2,3}
数组使用的注意事项
(5)数组的常见问题
A:ArrayIndexOutOfBoundsException
访问到了数组中的不存在的索引发生。
B:NullPointException
arr引用没有指向实体,却在操作实体中的元素时。
(6)数组的常见操作
A:遍历
数组有个属性:length
使用格式:数组名.length 返回数组的长度(其实就是数组中的元素个数)
public static void printArray(int[] arr)
{
for(int x=0; x<arr.length; x++)
{
System.out.println(arr[x]);
}
}
B:获取最值
//获取最大值
public static int getMaxValue(int[] arr)
{
int max = arr[0];
for(int x=1; x<arr.length; x++)
{
if(arr[x]>max)
{
max = arr[x];
}
}
return max;
}
//获取最小值
public static int getMinValue(int[] arr)
{
int min = arr[0];
for(int x=1; x<arr.length; x++)
{
if(arr[x]<min)
{
min = arr[x];
}
}
return min;
}
C:排序--选择排序
public static void selectSort(int[] arr)
{
for (int x=0; x<arr.length-1 ; x++)
{
for(int y=x+1; y<arr.length; y++)
{
if(arr[x]>arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y]= temp;
}
}
}
}
--冒泡排序
public static void bubbleSort(int[] arr)
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=0; y<arr.length-x-1; y++)
{
if(arr[y]<arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;;
}
}
}
}
D:查找---普通查找(可以是无序的数组)
public static int getIndex(int[] arr,int key)
{
for(int x=0; x<arr.length; x++)
{
if(arr[x]==key)
return x;
}
return -1;
}
---折半查找(须是有序的数组)
public static int getIndex(int[] arr,int key)
{
for(int x=0; x<arr.length; x++)
{
if(arr[x]==key)
return x;
}
return -1;
}
二.二维数组
1.当一个一维数组中的元素还是一个数组的时候,就可以称之为二维数组
2.定义格式 int[][] arr
其中,每个一维数组的长度可以是不一样的
3.二维数组的遍历
class Test
{
public static void main(String[] args)
{
int[][]arr={{1,2,4,5},{4,2,5},{3,2}};
//外循环遍历一维数组
for (int x=0;x<arr.length ;x++ )
{
//内循环遍历每个元素
for (int y=0;y<arr[x].length ;y++ )
{
System.out.print(arr[x][y]+" ");
}
System.out.println();
}
}
}
|