-
1.定义
- 相同类型数据的有序集合
- 按照一定的先后次序,从零开始
- 与c++类似
- 是引用类型
-
2.数组的声明创建
- 声明数组的变量
- 1)动态初始化(包含默认初始化):数据类型【】 变量名(常用)
- 2)数据类型 变量名【】(这个是为了跟c/c++接轨)
- 3)静态初始化:数据类型 【】 变量名={具体存值,具体存值......}(这种数组长度会自动根据输入存值的数量确定)
- 4)引用类型
- 使用new早作 孚来创建数组
- 数据类型 【】 变量名=new 数据类型【容量】
- 数组通过下标进行所以今年访问,从0开始
- 获得数组长度:arrays.length
- 未赋值的会默认为0/null
- 声明数组的变量
-
3.内存分析
- 堆
- 存放new的对象和数组
- new
- 可以被所有的线程共享,不会存放别的对象引用
- 存放new的对象和数组
- 栈
- 存放基本变量类型(会包含这个变量类型的具体数值)
- 声明
- 引用对象的变量(会存放这个引用的地址)
- 存放基本变量类型(会包含这个变量类型的具体数值)
- 方法区
- 可以被所有线程共享
- 包含了所有的class和static变量
- 下标越界报错
- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 10 out of bounds for length 10
- at array.demo1.main(demo1.java:10)
- 堆
-
4.数组的特点
- 4.1其长度是确定的,数组一旦被创建,它的大小是不可以改变的
- 4.2元素必须是相同类型的
- 4.3元素可以使你任意数据类型,包括基本类型和引用类型的
- 4.4数组变量引用类型,数组可以看成是对象,每个元素相当于该对象的成员变量。数组本身就是对象,java中对象是在堆中的
-
5.数组边界
-
6.数组的使用
- 增强性for循环:
- 数组变量名+.for(省略数组下标>>>比较适合输出整个数组元素)
- 数组作函数参数
- 数组作返回值
- 增强性for循环:
-
7.多维数组
- def:数组的数组
- 二维数组的定义:数据类型 变量名[][]=new int[数量a][数量b];>>a行b列矩阵
- 输出的是一串地址,说明a[0]是地址
-
8.Arrays类
- 数组的工具类:Java.util.Arrays
- 若数组为空会抛出异常
- binarySearch:二分查找法
- fill:给数组赋值,将给与的数值赋值给数组的所有元素
- 这个是Array.fill(数组,下标1,下标2,赋值a):将下标1到下标2之间的元素赋值为a(左闭右开)
- equals:比较数组内元素是否相等
- copyof
- sort:排序(升序)
- tostring:可以将整个数组转变成string类型
-
9.冒泡排序
- 理论:从前往后对相邻的两个元素进行比较,若前者大于(小于)后者,就将前者与后者交换,就能在一次遍历中将最大(小)的元素排到末尾,由此一共进行n-1次遍历(每次遍历的长度-1),完成从小到大(从大到小)的排序.
-
10.稀疏数组
- (数据结构)
- 将没有意义的数据去除
- def:当一个数组中大部分元素为0,或者为同一个值的数组是,可以使用稀疏数组来曹薰该数组
- 处理方式:
- 记录数组一共有几行几列,有多少不同值
- 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模
- (待补充)ints.for
java数组
最新推荐文章于 2024-08-11 20:00:32 发布