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第 ...
随机推荐
- 错了:用流量能够放肆,有wifi则要节制
网络上疯传的节制体中就有这么一句:有wifi就会放肆,但用流量就会节制.榜上有名,也说明了人们对wifi网络的需求.尤其是免费wifi.从对无线网络需求方面,毫无疑问,可是从还有一角度,我则觉得是流量 ...
- centos系统字符编码问题
1.cat /etc/locale.conf LANG="en_US.UTF-8" 2./etc/profile.d/lang.sh这个文件要有且可以正常执行(检查/sbin/co ...
- jinja2问题集锦
用jinja2写模板的时候遇到了一些问题,记录一下 抽出base.html作为模板 之前的小项目写得都很不规范,模板都是能用就行,基本上只用到if语句,for语句和变量.导航栏都是复制粘贴,没有把共同 ...
- 0071 CentOS_Tomcat访问文件名包含中文的文件出现404错误
访问CentOS+Tomcat下的,文件名包含中文的文件出现404错误 修改:apache-tomcat-7.0.78/conf/server.xml <Connector port=" ...
- JS 遍历 json key ,获取设置可变的key
$(rec.data[id]).each(function(){ for(var key in this){ if(key == value){ console.info(this[key].desc ...
- 单调栈poj2796
题意:给你一段区间,需要你求出(在这段区间之类的最小值*这段区间所有元素之和)的最大值...... 例如: 6 3 1 6 4 5 2 以4为最小值,向左右延伸,6 4 5 值为60....... ...
- Bootstrap学习笔记(5)--实现Bootstrap导航条可点击和鼠标悬停显示下拉菜单
实现Bootstrap导航条可点击和鼠标悬停显示下拉菜单 微笑的鱼 2014-01-03 Bootstrap 5,281 次围观 11条评论 使用Bootstrap导航条组件时,如果你的导航条带有下拉 ...
- python学习笔记(1)--遍历txt文件,正则匹配替换文字
遍历一个文件夹,把里面所有txt文件里的[]里的朗读时间删除,也就是替换为空. import os import re import shutil #os文件操作,re正则,shutil复制粘贴 pa ...
- Android App性能測试
一.内存 1.查看单个应用App最大内存限制 Command:adb shell "getprop|grep heapgrowthlimit" C:\Users\hujiachun ...
- [转]使用rosbridge协议实现安卓跟ros的解耦
安卓与ROS通信的现状 因为ROS官方支持的语言绑定只有C++和Python,所以目前安卓想与ROS通信,必须借助半官方的rosjava包,而Rosjava太重了,因为它跟C++/Python一样,是 ...