通常数组是具有连续内存位置的元素的集合。它是一个数据结构,我们存储类似的元素。Java语言中提供的数组是用来存储固定大小的同类型元素,因此只能在Java数组中存储固定的元素集合。

Java中的数组是基于索引的,数组的第一个元素存储的索引为:0。

Java Array 优点

代码优化:它使代码优化,可以轻松地检索或排序数据。

随机访问:可以获取任何位于任何索引位置的数据。

Java Array 缺点

大小限制:只能在数组中存储固定大小的元素。 它在运行时不会增长其大小。 为了解决这个问题,在Java中使用了集合框架。

Java中的数组类型有两种类型的数组分别是一维数组,多维数组。

Java 一维数组

Java中声明一个数组的语法(dataType数据声明类型):

dataType[] arr; (or)  // 通用方式,首选
dataType []arr; (or)  // 效果相同
dataType arr[];       // 效果相同

Java中实例化一维数组,语法:

dataType[] arrayRefVar = new datatype[size];

实例:

public class Testarray {
    public static void main(String args[]) {
int a[] = new int[5];
a[0] = 10;
a[1] = 20;
a[2] = 70;
a[3] = 40;
a[4] = 50;
for (int i = 0; i < a.length; i++) {
    System.out.println("遍历数组值 " + a[i]);
}
    }
}

运行结果如下:

遍历数组值 10
遍历数组值 20
遍历数组值 70
遍历数组值 40
遍历数组值 50

数组变量的声明,还可以使用如下的方式创建数组,语法:

dataType[] arrayRefVar = {value0, value1, ..., valuek};

实例:

public class Testarray {
    public static void main(String args[]) {
int a[] = {10,20,70,40,50};
for (int i = 0; i < a.length; i++) {
    System.out.println("遍历数组值 " + a[i]);
}
    }
}

运行结果如下:

遍历数组值 10
遍历数组值 20
遍历数组值 70
遍历数组值 40
遍历数组值 50

Java 多维数组

数据存储在基于行和列的索引(也称为矩阵形式)中,在Java中声明多维数组的语法:

dataType[][] arrayRefVar; (or)  
dataType [][]arrayRefVar; (or)  
dataType arrayRefVar[][]; (or)  
dataType []arrayRefVar[];

Java中实例化多维数组,语法:

dataType[][] arrayRefVar = new dataType[arraylenght1][arraylenght2];

dataType可以是基本数据类型和复合数据类型,arraylenght1和arraylenght2必须为正整数,arraylenght1为行数,arraylenght2为列数。

实例:

public class Testarray {
	public static void main(String args[]) {
		String s[][] = new String[2][];
		s[0] = new String[3];
		s[1] = new String[3];
		s[0][0] = new String("素");
		s[0][1] = new String("文");
		s[0][2] = new String("宅");
		s[1][0] = new String("博");
		s[1][1] = new String("客");
		s[1][2] = new String("!");
		for (int i = 0; i < 2; i++) {
			for (int j = 0; j < 3; j++) {
				System.out.print(s[i][j]);
			}
		}
	}
}

运行结果如下:

素文宅博客!

java.util.Arrays类

此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。具有以下功能:

public static int binarySearch(Object[] a, Object key)

用二分搜索法在给定数组中搜索给定值的对象(ByteIntDouble等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。

public static boolean equals(long[] a, long[] a2)

如果两个指定的long型数组彼此相等,则返回true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(ByteShortInt等)。

public static void fill(int[] a, int val)

将指定的int值分配给指定int型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(byteshortint等)。

public static void sort(Object[] a)

对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(byteshortint等)。

在线JDK1.8 API英文文档,关于java.util.Arrays类详细讲解地址:

https://tool.yoodb.com/apidoc/jdk8/java/util/Arrays.html#deepEquals-java.lang.Object:A-java.lang.Object:A-

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

分享:

支付宝

微信