本帖最后由 urankwong 于 2015-5-15 21:12 编辑
笔记内容:数组
笔记来源:刘然 java基础视频第5天
里面有些错别字,请忽略
******************我***是***分***割***线************************
数组:
1,2,3,4,5
概述:存储多个 同一种类型的元素的容器。
好处:可以对数组中的元素进行编号,从0开始。方便我们来操作。
数组的定义格式:
元素类型[] 数组名 = new 元素类型[数组的长度或者元素个数];
new:申请内存空间。
int[] arr = new int[5];
怎么获取数组中的元素?
第一个:arr[0];
arr[1];
arr[2];
内存的一个划分:
栈:存的是局部变量。
局部变量:定义在方法中或者方法的形式参数上的变量。
当变量使用完毕后(超出了变量的作用域),直接从内存消失。
堆:存的是new出来的东西(实体)。
1、每一个实体都有地址值。
2、每一个实体都有默认值。
整数:0
小数:0.0
字符:'\u0000'
布尔:false;
3、在不确定的时间被垃圾回收器(GC)给回收调。
方法区:方法,String常量池,静态区,byte常量池。
了解:
本地方法区:和系统相关的内容。
寄存器:有CPU来分配资源的。
定义数组的四种方式:此处以int类型举例
A: int[] arr = new int[5]; //定义一个int类型的数组,arr。
B: int arr[] = new int[5]; //定义一个int类型的arr数组。
C: int[] arr = new int[]{1,2,3,4,5};
D: int[] arr = {1,2,3,4,5};
arr[0],arr[2]
推荐使用:
A,D
数组的常见操作:
数组的长度: 数组名.length
长度: 从1-数组名.length
索引: length - 1;
数组的遍历;
- for(int x=0;x<arr.length;x++)
- {
- System.out.println(arr[x]);
- }
复制代码
数组的求最大值:
- /**1、定义一个变量max记录最大值。
- 2、遍历数组,拿到每一个元素,然后依次来跟最大值比较。
- 如果遍历到的元素,比最大值大,把该元素的值赋值给max。
- 3、将最大值返回。
- */
- int[] arr = {1,2,3,4,5};
- int max = arr[0]; //我们假设数组中的第一个元素是最大值。
- for(int x=0;x<arr.length;x++)
- {
- //arr[x]就是数组中的元素
- if(arr[x]>max) //判断当前遍历到的元素是否比最大值大,
- //如果比最大值还大,就将该值赋值给max
- {
- max = arr[x];
- }
- }
- System.out.println(max); //输出最大值。
复制代码
数组的基本查找功能:
- /** 1、定义一个变量记录要查找的值。 key
- 2、遍历数组,拿到每一个元素,然后依次来跟key比较。
- 如果相等,即返回该元素的索引(小标,下标)。
- 如果不相等,返回-1;
- */
- int[] arr = {1,2,3,8,4,5,8};
- int key = 8;
- //int index = -1; //记录的就是我要找的key在数组中的索引
- //int[] arrIndex = new int[arr.length];
- for(int x=0;x<arr.length;x++)
- {
- //arr[x]就是数组中的元素
- if(arr[x]==key)
- {
- index = x;
- break;
- //arrIndex[x] = x;
- }
- }
复制代码
二维数组:
概述:就是每个元素都是一维数组 的数组。
A:int[][] arr = new int[n][m];
n:可以看做是行。 代表arr这个二维数组有多少个一维数组。
m:可以看做是列。 代表每一个一维数组中有多少个元素。
B:int[][] arr = new int[n][];
n:可以看做是行。 代表arr这个二维数组有多少个一维数组。
第二个中括号的意思是:每个一维数组的长度不固定。
C:int[][] arr = { {1,2,3},{4,5},{7,8,9}};
遍历:
二维数组的长度:
arr.length
每个一维数组的长度:
arr[x].length
每个二维数组的元素:
arr[x][y]
应用:
计算商场的年销售额。 |