您的位置:首页 > 职场人生

黑马程序员JAVA基础-数组以及一些基本操作

2013-05-18 21:01 651 查看
------- android培训java培训、期待与您交流! ----------

数组

(1)同一种类型数据的集合。其实数组就是一个容器。

A:只要是容器,就得重点掌握。

(2)数组的好处

A:可以自动给数组中的元素从0开始编号,方便操作这些元素。

(3)数组的定义格式

A:当不明确数组中的元素时

**举例 int[] arr = new int[3];

B:当明确数组中的元素时

**举例 int[] arr = new int[]{1,2,3,4,5};

arr = {1,2,3,4,5};

操作数组最常见的问题

A:当你访问到数组中的最后一个元素时,还想继续访问,这个时候,会发生角标越界异常。

**ArrayIndexOutOfBoundsException

**举例 int[] arr = new int[3];

System.out.println(arr[3]);

B:当数组不在指向某个实体时,你还继续访问,就会发生空指针异常。

**NullPointerException

**举例 int[] arr = new int[3];

arr = null;

System.out.println(arr[1]);

常见的数组的操作

记住:对数组的操作,一定要从角标下手。

A:遍历操作

**数组的属性:length 数组的长度。

**格式:数组名.length

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

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

}

B:获取最值

**获取最大值

public static int getMax(int[] arr){

int max = arr[0];

//i从1开始,因为第一个数不用跟自己比

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

if(arr[x]>max) {

max = arr[x];

}

}

return max;

}

**获取最小值

public static int getMin(int[] arr) {

int min = arr[0];

//i从1开始,因为第一个数不用跟自己比

for(int i=1; i<arr.length; i++) {

if(arr[i]<min){

min = arr[i];

}

}

return min;

}

C:排序

**选择排序

原理:如果拿0角标上的元素依次和后面的元素进行比较,

第一次内循环结束后,最小值出现在了0角标位置。

你就想想我们是如何打星星

****

***

**

*

public static void selectSort(int[] arr){

//i<arr.length-1 n个数两两比,n-1次就能获得最值。

for(int i=0; i<arr.length-1; i++){

//0角标元素没必要和自己比,所以j从1开始。

//发现j为了不重复比较,总是要比i大1,所以j从i+1开始

for(int j=i+1; j<arr.length; j++){

if(arr[j]<arr[i]){

int temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

}

}

}

}

**冒泡排序

原理:两个相邻元素进行比较,第一次比较完以后,最大值出现在了最大角标处。

public static void bubbleSort(int[] arr){

//i<arr.length-1 n个数两两比,n-1次就能获得最值。

for(int i=0; i<arr.length-1; i++){

//为了防止角标越界,j<arr.length-1

//为了减少比较次数,j<arr.length-1-i

for(int j=0; j<arr.length-1-i; j++){

if(arr[j]>arr[j+1]){

int temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}

}

}

}

D:传递参数

**调用的时候,传递是基本类型的值的时候,形参改变对实参没有任何影响。

**调用的时候,传递是引用类型的地址的时候,形参改变对实参有直接影响。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐