黑马程序员——java基础知识篇——>数组

来源:互联网 发布:linux get_sb 编辑:程序博客网 时间:2024/06/11 11:02

-----------android培训java培训、java学习型技术博客、期待与您交流!------------

一、数组

数组就是同一种类型数据的集合
格式:元素类型[] 数组名=new 元素类型[]{元素,元素,....};
:元素类型[] 数组名=new 元素类型[元素个数或数组长度];
特例:int[] arr=new int[3];
System.out.println(arr[3]);(错误是ArrayIndexOutOfBoundsException;
数据操作是访问到了不存在的角
 int[]arr = null;

  System.out.println(arr[0]);(错误是NullPointerException)空指针异常

数组在内存中状态


二、二维数组

  格式1 int[][] arr= new int[4][3];
表示定义了名称为arr的二维数组。有4个一维数组,每一个一维数组中有3个元素。
格式2int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};
表示直接定义时就有了初始化值
示例:int[][] arr = new int[3][];
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];
以上代码在内存中的状态:

数组的应用示例:
累加二维数组中的数
public static void main(String[] args) {int[][] arr = { { 1, 4, 5 }, { 54, 7, 8 }, { 3, 5, 78, 7 } };int sum = 0;for (int x = 0; x < arr.length; x++) {for (int y = 0; y < arr[x].length; y++) {sum += arr[x][y];}}System.out.println("sum=" + sum);}
数组的查找:
public static void main(String[] args) {int[] arr={2,4,5,6,7};int index=half_1(arr,4);//int index=getIndex(arr,6);System.out.println("index="+index);}public static int getIndex(int[] arr,int key){for(int x=0;x<arr.length;x++){if(arr[x]==key){return x;}}return -1;//习惯没有找到的话用-1表示}/*折半查找:数组必须是有序的想找的数大就向右移*/public static int half(int[] arr,int key){int min,max,mid;min=0;max=arr.length-1;mid=(min+max)/2;while(arr[mid]!=key){//满足条件才会循环,不满足就是找到了就执行39行直接返回midif(arr[mid]<key)min=mid+1;else if(arr[mid]>key)max=mid-1;if(min>max)return -1;mid=(min+max)/2;}return mid;}//第二种方法public static int half_1(int[]arr,int key){int min=0,max=arr.length-1,mid;while(arr[min]<=arr[max]){//如果不满足小于等于就执行53行返回-1,值不存在mid=(min+max)>>1;if(arr[mid]>key)max=mid-1;else if(arr[mid]<key)min=mid+1;elsereturn mid;}return -1;}
-----------android培训java培训、java学习型技术博客、期待与您交流!------------

           

0 0