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

黑马程序员---JAVA基础---数组(四)

2013-12-26 18:44 232 查看
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 

 

1、数组的定义:数组是同一种数据类型的集合,其实数组就是一个容器。其格式如下:

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

      格式2:元素类型 [] 数组名 =new 元素类型 [元素个数或数组长度] {1,2,3,4,5,....};

2、数组的好处:可以自动给数组中的元素从0开始编号,方便操作一些元素。

3、内存结构

JAVA中内存分为栈内存与堆内存。

栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放

堆内存:(1)数组和对象,通过new建立的实例都存放在堆内存中。

              (2)每一个实体都有内存地址值。

              (3)实体中的变量都有默认初始化值。

              (4)实体不在被使用,会在不确定的时间内被垃圾回收器回收。

4、数组的常见操作:

(1)获取数组中的元素(用遍历操作)

int [] arr =new int[3];

for(int x=0;x<3;x++)

{

System.out.println(arr.lengtjh);

}

(2)获取数组中的最大值

public static int getMax(int[] arr) 

        { 

    int max = 0; 

    for(int x=1; xarr[max]) 

        max = x; 

    } 

    return arr[max]; 

        } 

(3).折半查找:可以提高效率,但是必须要保证该数组是有序的数组。

import java.util.*;

class ArrayTest4

{

public static void main(String[] args)

{

   int[] arr = {3,2,1,5,4,2,9};

   int index = getIndex(arr,2);

  System.out.println("index="+index);

// int x = Arrays.binarySearch(arr,190);//java提供好的一个进行折半查找的功能。开发时使用这个。

// System.out.println("x="+x);

}

public static int getIndex_2(int[] arr,int key)

{

int min = 0,max = arr.length-1,mid;

while(min<=max)

{

mid = (max+min)>>1;

  if(key>arr[mid])

min = mid + 1;

else if(key<arr[mid])

max = mid - 1;

else

return mid;

}

return min;

}

(4)排序:选择排序和冒泡排序

import java.util.*;

class ArrayTest2

{

/*

选择排序。

内循环结束一次,最值出现头角标位置上。

*/

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;

*/

swap(arr,x,y);

}

}

}

}

/*

冒泡排序

*/

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++)//-x:让每一次比较的元素减少,-1:避免角标越界。

{

if(arr[y]<arr[y+1])

{

/*

int temp = arr[y];

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

arr[y+1] = temp;

*/

swap(arr,y,y+1);

}

}

}

}

5、二维数组(使用的引用数据类型初始化为null)其格式如下:

格式1:元素类型 [][] 数组名 =new 元素类型 [<第一维大小>][<第二维大小>];

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

 

 

----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: