一.
数组概念:同一种类型数据的集合。其实数组就是一个容器。用于存放;一系列(若干份)类型相同的数据,数组一旦定义,长度不可变
数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
格式: 元素类型[] 数组名 = new 数组类型[元素个数或数组长度]; int [] arr = new int [5];或者int [] arr = new int[] {3,1,4,5,6};
//===========================================================
二.
数组中有一个属性可以直接获取到数组元素个数, .length
public static int getMax(int [] arr){
int max = arr[0];
for(int i=1; i<arr.length; i++){
if(max <a[i]){
max = a[i];
}
}
return max;
}
//===========================================================
三.
数组的常见操作
数组的定义:静态和动态
栈内存
堆内存
class Demo
{
public static void main (String args[])
{
//静态定义
int[] arr = {23,4,67,198,3};
//int arr[] = {23,4,67,198,3};
//动态
int arr2[] = new int[10]; //自动初始化
int arr3[] = new int[]{1,3,5,7};//
/
/数组的访问
int num3 = arr[2];
System.out.println(num3);
System.out.println(arr2[4]);
//为数组的元素赋值
arr2[2] =500;
System.out.println(arr2[2]);
//如何获取数组的长度,每个数组都有一个固定的属性是length
int len = arr.length;
System.out.println("数组arr的长度"+len);
//遍历数组的元素,将元素依次取出来打印
for(int i=0; i<arr.length; i++)
System.out.println(arr[i]);
//
//如果数组为null,那么在访问时会抛java.lang.NullPointerException空指针异常
// int[] arr4 = null ;
// System.out.println(arr4.length);
// 访问数组时注意,角标的取值范围为0-length-1,
// 超出这个范围就会抛java.lang.ArrayIndexOutOfBoundsException角标越界异常
// System.out.println(arr[5])
System.out.println("---------------------------------");
listArr(arr);
}
/
/遍历数组的元素,输出
static void listArr(int[] arr)
{
//定义一个容器StringBuffer
StringBuffer sb = new StringBuffer();
for(int i=0; i<arr.length; i++)
sb.append(arr[i]+",");
sb.delete(sb.length()-1, sb.length());//
不会遭成角标越界
System.out.println(sb);
//System.out.println(arr[i]+",");
}
//求一个数中的最大数
思路:
1.定义一个变量max用于记住最大数,初始值为第一个元素
2.遍历数组,让每个元素都和max比较,如果比max大,将该元素的值给max
3.返回max
*/
static int getMaxNum(int[] arr)
{
int max = arr[0];
for(int i=1; i<arr.length; i++)
{
if(arr[i]>max)
max = arr[i];
}
return max;
}
/* 交换数组的两个元素
1.定义一个临时变量temp,值为pos1位置的元素
2.让pos1位置的元素的值等于pos2位置的元素
3.让pos2位置的元素的值等于temp
*/
static void exchange(int[] arr, int pos1, int pos2)
{
int temp = arr[pos1];
arr[pos1] = arr[pos2];
arr[pos2] = temp ;
}
}
//====================================================
多维数组
二维数组:数组的每一个元素又是一个数组
class Demo
{
public static void main(String args[])
{
int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
System.out.println(arr.length);
//遍历所有的元素
//遍历整个数组
for(int i=0; i<arr.length; i++)
{
//遍历每个元素(数组)
for(int j=0; j<arr[i].length; j++)
{
System.out.print(arr[i][j]+ " ");
}
}
//int arr1 [][] = new int[5][10];
int[][] arr2 = new int[3][];
arr2 [0] = new int[4];
arr2 [1] = new int[8];
arr2 [2] = new int[11];
}
}