---------------------- 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