Java 数组详解 - 用法、遍历、排序、实用API
数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。
组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。
数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。
| |目录
1初始化数组
动态初始化
1
2
3
4
5
6
7
8
|
int [] array = new int [ 3 ]; // 两种方式都可以 // int array[] = new int[3]; array[ 0 ] = 1 ; array[ 1 ] = 2 ; array[ 2 ] = 3 ; System.out.println(array[ 0 ]); |
静态初始化
1
2
3
4
5
|
int [] array = { 1 , 2 , 3 , 4 }; int [] array1 = new int [] { 1 , 2 , 3 , 4 }; System.out.println(array[ 2 ]); System.out.println(array1[ 2 ]); |
默认初始化
1
2
|
int [] array = new int [ 4 ]; System.out.println(array[ 2 ]); |
2获取数组的长度
1
2
3
|
int [] array = new int [ 10 ]; int length = array.length; System.out.println( "数组array的长度是:" + length); |
3二维数组
二维数组初始化
同一维数组一样,共有4总不同形式的定义方法:
1
2
3
4
|
int [][] array1 = new int [ 10 ][ 10 ]; int array2[][] = new int [ 10 ][ 10 ]; int array3[][] = { { 1 , 1 , 1 }, { 2 , 2 , 2 } }; int array4[][] = new int [][] { { 1 , 1 , 1 }, { 2 , 2 , 2 } }; |
不定长二维数组
1
2
3
4
|
int [][] array = new int [ 3 ][]; array[ 0 ] = new int [ 1 ]; array[ 1 ] = new int [ 2 ]; array[ 2 ] = new int [ 3 ]; |
获取二维数组的长度
1
2
3
4
5
6
|
int length1 = array.length; int length2 = array[ 0 ].length; // 获取二维数组的第一维长度(3) System.out.println(length1); // 获取二维数组的第一维的第一个数组长度(1) System.out.println(length2); |
4数组遍历
传统方式遍历
1
2
3
4
|
int [] array = new int [] { 1 , 2 , 3 }; for ( int i = 0 ; i < array.length; i++) { System.out.println( "array[" + i + "] = " + array[i]); } |
增强for循环方式遍历
1
2
3
4
|
int [] array = new int [] { 1 , 2 , 3 }; for ( int i : array) { System.out.println(i); } |
5数组排序
1
2
3
|
int [] array = { 3 , 2 , 1 , 4 , 5 }; Arrays.sort(array); System.out.println(Arrays.toString(array)); |
另:常用的排序方法有冒泡排序、快速排序、选择排序、插入排序、希尔(Shell)排序、堆排序。可参考Java 数组排序
6数组的复制、插入和合并
7实用API
输出数组
1
2
|
int [] array = { 1 , 2 , 3 }; System.out.println(Arrays.toString(array)); |
数组转List
1
2
3
|
String[] array = { "a" , "b" , "c" , "d" , "e" }; List<String> list = new ArrayList<String>(Arrays.asList(array)); System.out.println(list); |
数组转Set
1
2
3
|
String[] array = { "a" , "b" , "c" , "d" , "e" }; Set<String> set = new HashSet<String>(Arrays.asList(array)); System.out.println(set); |
List转数组
1
2
3
4
5
6
7
8
|
List<String> list = new ArrayList<String>(); list.add( "a" ); list.add( "b" ); list.add( "c" ); String[] array = new String[list.size()]; list.toArray(array); for (String s : array) System.out.println(s); |
数组中是否包含某个值
1
2
3
|
String[] array = { "a" , "b" , "c" , "d" , "e" }; boolean b = Arrays.asList(array).contains( "a" ); System.out.println(b); |
数组合并
1
2
3
4
|
int [] array1 = { 1 , 2 , 3 , 4 , 5 }; int [] array2 = { 6 , 7 , 8 , 9 , 10 }; int [] array = org.apache.commons.lang.ArrayUtils.addAll(array1, array2); System.out.println(Arrays.toString(array)); |
String数组转字符串(使用指定字符拼接)
1
2
3
|
String[] array = { "a" , "b" , "c" }; String str = org.apache.commons.lang.StringUtils.join(array, ", " ); System.out.println(str); |
数组逆序
1
2
3
|
int [] array = { 1 , 2 , 3 , 4 , 5 }; org.apache.commons.lang.ArrayUtils.reverse(array); System.out.println(Arrays.toString(array)); |
数组元素移除
1
2
3
|
int [] array = { 1 , 2 , 3 , 4 , 5 }; int [] removed = org.apache.commons.lang.ArrayUtils.removeElement(array, 3 ); System.out.println(Arrays.toString(removed)); |
8数组异常
1. 数组下标越界异常,java.lang.ArrayIndexOutOfBoundsException
在java中,数组下标从0开始,我们定义了一个长度为3的数组,想要从中取出第四位,便会抛出此异常。
1
2
|
int [] array = new int [] { 1 , 2 , 3 }; System.out.println(array[ 3 ]);
|
Java 数组详解 - 用法、遍历、排序、实用API的更多相关文章
- 【Java学习笔记之五】java数组详解
数组 概念 同一种类型数据的集合.其实数组就是一个容器. 数组的好处 可以自动给数组中的元素从0开始编号,方便操作这些元素. 格式1: 元素类型[] 数组名 = new 元素类型[元素个数或数组长度] ...
- Java - 数组详解(图解数组的基本操作)
目录 什么是数组 数组的定义和内存分配 数组的赋值和访问 数组的注意事项 数组的内存图解 数组的插入 数组的删除 数组的扩容 数组的反转 首先 什么是数组 数组是一组地址连续.长度固定的具有相同类型的 ...
- Java map 详解 - 用法、遍历、排序、常用API等
尊重原创: http://www.cnblogs.com/lzq198754/p/5780165.html 概要: java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 L ...
- java 数组详解
from : http://blog.csdn.net/jionjionyoushen/article/details/6223006 1.关于数组的特点 1)在Java中,无论使用数组或集合,都有边 ...
- JAVA数组详解
package com.keke.demo; import java.text.ParseException;import java.text.SimpleDateFormat;import java ...
- Java基础之 数组详解
前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...
- “全栈2019”Java第三十一章:二维数组和多维数组详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第三十章:数组详解(下篇)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第二十九章:数组详解(中篇)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
随机推荐
- Torch实现ReQU,和梯度验证
重写函数 我们使用torch实现我们自己的ReQU模块.在实现一个新的layer之前,我们必须了解,我们并不是重写forward和backward方法,而是重写里面调用的其它方法. 1)又一次upda ...
- 03、同事分享课程的笔记 —《Android应用低功耗设计》
这是安卓组的同事一个月前分享的一节课程,听课时写了一下笔记,之前是写在本子上的,感觉内容挺不错 的,就保存在博客了吧,方便回看. 他曾经在就职于英特尔公司,是与芯片设计相关的,这课程标题虽然是与安卓相 ...
- visual studio 2013 触发挂起事件
在 VS2013 中调试 winddows phone 或者 win rt 程序的时候,需要手动触发 “挂起” 事件. 如果找不到这个按钮: 1.打开菜单栏中的 “自定义” 对话框: 2.选择调试位置 ...
- jquery的商品首页
js代码: $(function() { /*新闻滚动*/ var $this = $('.scrollNews'); var scrollTimer; $this.hover(function () ...
- jq实现千分位的转换
一.千分位转换位整数 var sum = '2,034,300';var x = sum.split(",");var plan_sum = parseFloat(x.join(& ...
- C#大小写字母转换函数
ToUpper:小写转大写ToLower:大写转小写 例如: string A="aasiDi778=AA"; string B=""; B=A.ToUpper ...
- MUTT+MSMTP利用163服务器发送邮件
监控系统发送告警邮件,我们自己搭建邮件服务器,成本较高,所以可以使用163等第三方MTA帮助我们发送.MUTT+MSMTP是一个很好的选择,具体实现如下: tar -xvf msmtp-1.6.5.t ...
- 访问子节点childNodes
访问子节点childNodes 访问选定元素节点下的所有子节点的列表,返回的值可以看作是一个数组,他具有length属性. 语法: elementNode.childNodes 注意: 如果选定的节点 ...
- dfs带状态改变的做法
所谓带状态改变是指:在搜索到某个位置的时候,状态发生改变,继续计算步数. 给一个例题: 蒜头君要回家,但是他家的钥匙在他的朋友花椰妹手里,他要先从花椰妹手里取得钥匙才能回到家.花椰妹告诉他:“你家的钥 ...
- spingboot集成jpa(一)
springboot + jpa 练习 spingboot集成jpa(一):最基本的环境搭建 spingboot集成jpa(二):使用单元测试 1. pom.xml中添加依赖 <!-- jdbc ...