黑马程序员——数组

来源:互联网 发布:js对象数组重新赋值 编辑:程序博客网 时间:2024/06/06 03:56
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

概念:

同一种数据类型的集合。

可以自动给数组张的元素从0开始编号,方便操作元素。

一维数组:

格式1:元素类型[]数组名=new元素类型[元素个数或数组长度]

如:int[] arr=new int[3];页可以写成:int arr[] = new int[3];

格式2:元素类型[]数组名=new元素类型[]{元素1,元素2....};

如:int[] arr=new int[]{1,2,3,4,5};

还有一种简写静态初始化格式:int[] arr={1,2,3,4,5};

new出来的东西都是分配在堆内存中的,在堆内存中生成一个容器实体,通过哈希值指向堆内存中的数组,所以数组也称为引用数据类型。数组在堆内存中开辟空间后,就有默认的初始化值。

在操作数组时常见的两个问题:

ArrayIndexOutOfboundsException: 访问到了数组中不存在的下标。

NullPointerException: 空指针异常,引用没有任何指向值为null的情况,该引用还在用于操作实体。

 

常见操作:

获取数组中的元素,通常会用到遍历。

示例:

class ArrayDemo

{

public static void main(String[] args)

{

int[] arr=new int[3]; //的定义一个长度为3的数组

for(int x=0;x<3;x++) //利用for循环遍历数组中的元素

{

System.out.println(“arr[”+”]=”+arr[x]+”;”);

}

}

}

//arr.length获取数组长度

数组排序:常用的排序方式有冒泡排序和选择排序

示例:

冒泡排序:比较相邻的元素,如果第一个大,就交换他们。对每一对相邻元素都做同样工作,执行完后,最后的元素应该是最大的,较小的数会逐个往前移,类似于泡泡上升,所以叫冒泡排序。

class MaoPao

{

public static void main(String[] args)

{

int arr[]={21,12,53,15,64}; //定义数组

SopArray(arr); //打印原数组

BubbleSort(arr); //调用冒泡排序方法

SopArray(arr); //打印排序好后的数组

}

 

public static void SopArray(int[] arr) //遍历打印数组元素

{

for(int x=0;x<arr.length;x++)

{

System.out.printarr[x]+” ”);

}

System.out.println();

}

public static void BubbleSort (int[] arr)

{ int temp=0;

for(int x=0;x<arr.length;x++) //外循环遍历数组

{

for(int y=0;y<arr.length-1-x;y++) //内循环比较元素大小排序

{

if(arr[y]>arr[y+1]) //用第三方变量互换元素

{

temp=arr[y];

arr[y]=arr[y+1];

arr[y+1]=temp;

}

}

}

}

}

 

二维数组:

格式:int[][] arr=new int[3][2];

定义了一个名为arr的二维数组,有3个一维数组,每个一维数组中有2个元素。

格式:int[][] arr=new int[3][];

每一个一维数组都是默认初始化值为null

格式:int[][] arr={{1,3,5},{2,5},{12,46,33,6}};

定义二维数组,每一个一维数组中的元素都初始化了。


0 0
原创粉丝点击