17.03.04 数组
来源:互联网 发布:pkpm结构计算软件 编辑:程序博客网 时间:2024/05/29 12:51
数组与其它容器的区别有三个方面:
效率——简单的线性序列,高效率存储和随机访问
类型——数组在编译时,可以自动检测要插入的数据的类型与定义的是否相符
保存基本数据类型——数组可以持有基本数据类型(泛型也可以)
一、创建数组
格式:一维数组:数据类型[]数组名字 或者 数据类型 数组名字[]
二维数组:数据类型[][] 数组名字 或者 数据类型 数组名字[][]
(推荐使用“数据类型[] 数组名字”格式,更符合java面向对象的特性)
如:int [] array1 或 int array1 []
二、为数组分配内存
数组声明之后,必须使用new为其分配内存
格式:数据类型[] 数组名字 =new 数据类型[元素个数]
如:int [] array1=newint [5];
二维数组可分别分配内存空间
如:
int [][]array1=new int [2][];
int[0]=new int[5];
int [1] = newint [4];
三、数组初始化
数组初始化有两种方式:
int [] array1=new int [5]{1,2,3,4,5} 或
int [] array1={1,2,3,4,5}
四、数组基本操作
4.1 遍历数组
使用for语句或者foreach语句
4.2 填充替换数组元素
(1)Arrays.fill(数组名,填充数值)
该方法为数组所有元素,填充同一个值
(2)Arrays.fill(数组名,起始索引,终止索引,填充数值)
该方法为数组指定范围 [起始,终止) 填充数值
4.3 数组排序
Arrays.sort(数组名)
返回值为排序后的数组(从小到大排序)
4.4复制数组
(1)Arrays.copyOf(原数组名,新数组长度)
如果新数组长于旧数组,多余的用0或null填充;如果新数组小于旧数组,则从0索引开始截取长度。
(2)Arrays.copyOfRange(原数组名,起始索引,终止索引)
复制指定范围的数组
(3)System.arraycopy(源数组,源数组复制起始点,目标数组,目标数组插入起始点,复制元素个数)
注意:
对象数组是浅复制,只是复制了对象引用;另外,arraycopy()方法两个数组必须具有相同的确切类型
4.5获取数组长度
格式:数组名.length
4.6数组查询
格式一:Arrays.binarySearch(数组名,要查找的值)
格式二:Arrays.binarySearch(数组名,起始索引,终止索引,要查找的值)
如果数组中存在该值,则返回该值的索引,否则放回值为,该数要插入到该数组中的顺序的负数,如假设在[0,3)之间查找某数,不存在,则该数将插入3的索引位置,顺序为4,返回值则为-4.
调用此方法之前,必须用sort对数组进行排序,否则,如果数组中有多个该值,不能保证找到的是哪个值。
4.6数组与字符串的相互转换
1.数组转为字符串
方法一:字符数组可直接通过 new String(char[])、
方法二:构建字符串生成器(StringBuilder),通过foreach语句将数组元素加入字符串生成器,最后用toString()方法即可。
方法三;Arryas.toString(数组名) 输出结果为[str1,str2,str3……],结果用处不大。
2.字符串转为字符数组
方法一:str.split(“”)分割获得
方法二:str.toCharArray()
方法三:str.getChar(起点索引,终点索引,目标数组,目标起始索引)
4.7 Arrays.toString()与Arrays.deepToString()的区别
后者用于多维数组
4.8 数组比较,Arrays.equals()与Arrays.deepEquals()方法
(1)数组比较
(2)数组元素之间的比较
思考:
1.将数组中指定值,替换为另外一个值?
- 17.03.04 数组
- 04数组 字符数组
- 【04】数组
- 04-数组
- java数组--04
- Note-04-数组
- 04、数组与字符串
- 数组与字符串04
- JavaSE 04 数组
- Shell数组~04
- 04:数组逆序重放
- scala编程04--数组
- 数组
- 数组
- 数组
- 数组
- 数组
- 数组
- Checking out and Building Chromium for Windows
- 二月英语总结
- 在linux终端(terminal)中执行python文件
- Oracle12cR1--新特性
- Spring MVC 数据验证
- 17.03.04 数组
- 《windows下Apache虚拟主机的配置》
- 【Android】Android开源项目(一)音乐播放器源码汇总
- 相机标定(一):杂谈
- Java8 Lambda表达式
- c# async/await编程
- 【剑指Offer】序列化二叉树
- WEB后端学习(一)——了解后端行业
- 像程序员一样学习