java array数组_Java Array数组优缺点和Array源码分析

通常数组是具有连续内存位置的元素的集合。它是一个数据结构,我们存储类似的元素。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 

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 

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 

for (int j = 0; j 

System.out.print(s[i][j]);

}

}

}

}

运行结果如下:素文宅博客!

java.util.Arrays类

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

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

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

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

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

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

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

public static void sort(Object[] a)

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值