黑马程序员————数组(day4)
来源:互联网 发布:2016年淘宝卖什么好做 编辑:程序博客网 时间:2024/05/26 20:23
----------------------ASP.Net+Android+IOS开发----------------------期待与您交流!
数组
数组的定义
概念:同一种类型数据的集合。其实数组就是一个容器。
数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
格式1: 元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
示例: int[] arr = new int[5];
格式2: 元素类型[] 数组名 = new 元素类型[]{元素,元素,......};
示例: int[] arr = new int[]{1,2,3.4};
int[] arr = {1,2,3,4};
编译时报错:
ArrayIndexOutOfBoundsException 3: 运行时出现这个异常,表示操作数组时,访问 到了数组中不存在的角标。
NullPornterException: (空指针异常)当引用没有任何指向值为null的情况,该引 用还在用于操作实体。
数组的操作:
获取数组中的元素,通常会用到遍历。
数组中有一个属性可以直接获取到数组元素个数 .length
使用方法:数组名称.length
上图就是遍历该数组中的元素并且按格式打印
取最值:
获取数组中的最大值.
思路:
1.获取最值需要进行比较,每一次比较都会有一个较大的值,因为该值不确定。
通过一个变量进行临储。
2.让数组中的没一个元素都和这个变量中的值进行比较。
如果大于了变量中的值,就用该变量记录较大值。
3.当所有的元素都比较完成,那么该变量中存储的就是数组中的最大值了。
步骤:
1.定义变量,初始化为数组中任意一个元素即可。
2.通过循环语句对数组进行遍历。
3.在变量过程中定义判断条件,如果遍历到的元素比变量中的元素大,就赋值给 该遍历。
需要定义一个功能来完成,以便提高复用性。
1.明确结果,数组中的最大元素 int.
2.未知内容:一个数组.int[]
代码如下:
数组排序:
/*对给定数组进排序:{2,3,5,1,6,8,4,7,9}*/public class Sort {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]){/* 以下进行换位,定义一个第三方变量tempint temp = arr[x];arr[x] = arr[y];arr[y] = temp;*/swap(arr, x, y);}}}/*以上为选择排序内循环结束一次,最值出现在头角标的位置*/}public static void bubblingSort(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);}}}/*以上为冒泡排序:相邻的两个元素进行比较,如果符合条件进行换位 第一圈,最值出现在最后位。*/}public static void bianLi(int[] arr){System.out.print("[");for(int x = 0; x<arr.length; x++){if(x!=arr.length-1)System.out.print(arr[x] + ",");elseSystem.out.println(arr[x] + "]");}}/*无论什么排序,都需要对满足条件的元素进行位置互换,所以可以把这部分相同的代码提取出来,单独封装成一个函数。*/public static void swap(int[] arr, int a, int b){int temp = arr[a];arr[a] = arr[b];arr[b] = temp;}public static void main(String[] args){int[] arr = {2,3,5,1,6,8,4,7,9};bianLi(arr);bubblingSort(arr);bianLi(arr);//Arrays.sort(arr); Java中已经定义好的一种排序方式。开发中,对数组排序,要使用该语句代码。(需要导入java.util.*)}}
二维数组
格式1: int[][] arr = new int[2][3];
定义了名称为arr的二维数组
二维数组中有3个以为数组
每一个一维数组中有2个元素
一维数组的名称分别为arr[0], arr[1], arr[2]
给第二个一维数组2脚标位赋值为78写法是:arr[1][2] = 78;
图中栈内存有arr,有个内存地址指向堆内存二维数组的内存地址
堆内存中有个二维数组里装了两个一维数组数组arr[0]和arr[1]
如果要想给第二个一维数组的二脚标赋值78那就可以写成:arr[1][2] = 78
格式2: int[][] arr = new int[3][];
二维数组中有3个一维数组
每一个一维数组都是默认初始化值null
可以对这个三个一维数组分别进行初始化
arr[0] = new int[3];
arr[1] = new int[1];
arr[2] = new int[2];
格式3: int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
例: 比如一个公司有3个销售组,想获取这个公司的总销售额
代码如下:
----------------------ASP.Net+Android+IOS开发----------------------期待与您交流!
详情请查看:http://edu.csdn.net
- 黑马程序员————数组(day4)
- 黑马程序员—数组
- 黑马程序员—数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- Qt播放器学习
- JQuery的学习
- vector
- ffmpeg库 在vs2012中的调用
- java程序查不出数据来
- 黑马程序员————数组(day4)
- 修改窗口的图标 修改视窗光标
- NYOJ 题目49 开心的小明 (01背包)
- 动画启动程序
- 仿迅雷工具栏
- 7种脱壳方法
- test
- 非常好用的友链查询工具
- 单点登录cas 的2点疑问?