JavaEE培训

您当前的位置:首页 > Java培训 > JAVA开发 >

Java数组的使用

来源:Java数组讲解 2018-01-17

本文介绍了在java开发中经常使用的数组,以及数组的使用方法,注意事项。

一.什么是数组

1. 数组:数组即是一堆逻辑上无序的元素的序列,用来存储多个相同类型的数据,数组可以看做是一个集合,其内部元素存储在一个连续的内存块当中,并通过索引(即数组中元素的下标)来访问。

2. 特点:

A. 数组中的元素数据类型都相同;

B. 各元素在内存中的存储是有先后顺序的;

C. 表示数组元素的时候,需要使用数组名和该元素在数组中的位置来表示;

3. 分类:

最简单的形式是一维数组,即数组中直接存储元素,如{1,2,3,4};其次是二维数组,在二维数组中的元素都是一维数组,如{{123},{456},{789}};再次意义上可以有更多维的数组。

Java数组

二.Java中的数组

(以下示例中皆以整型一维数组 int array[] 为例)

1. 特点:

java中的数组满足数组的所有含义和特点;

2. 声明数组:

在java中,声明数组时有两种情况:有大小,或者无大小,同时在声明数组时,需要声明数组的数据类型,以及数组的维度,声明方式分为以下几种:

a. int array[] = {1,2,3};直接在声明数组的同时进行赋值;

b. int array[] ;声明数组未进行赋值操作;

c. Int array[] = new int[10];声明数组时定义了数组的大小;

3. 数组长度:

使用数组的 length 属性,可已查看数组的大小:

Int length = array.lenth;

4. 遍历数组:

在开发中,根据数组的特性,经常会通过循环来遍历数组,如for循环或forEach循环:

For循环,根据数组的小标进行遍历:
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}

ForEach循环,根据数组的数据类型得到元素,进行遍历:

for(Integer data : array){

System.out.println(data);

}

3. 类型转换:

A. 数组转为Set集合:

使用java api 中Arrays 工具类进行转换为list,再转为set:
Set<Integer> set = new HashSet<Integer>(Arrays.asList(array));

B.数组转为List集合:

第一种:遍历数组,向list中添加元素;

第二种,使用api java.util.Arrays进行转换:
List<Integer> list = Arrays.asList(array);

6. java数组常用操作:

A. int数组转换为String:

String result =Arrays.toString(array);

B.判断数组是否包含元素:

使用数组的contains 方法进行判断,该方法返回值为boolean类型,如果包含该元素,返回值为true,否则返回false;

如:int array[] = {1,2,2,3,4,5};

array.contains(1)返回值为true;array.contains(6)返回值为false;

C.填充数组:

第一种可通过循环数组的下标(index),维数组的每一个位置进行赋值(array[index] = data);

第二种可以通过工具类Arrays进行填充,如:Arrays.fill(array,5),将array的每个位置都赋值为5.

D.复制数组:

第一种方法是直接指定新的数组:int array2[] = Arrays.copyOf(array,20),将数组array复制到array2中,同时指定array2的数组大小是20;

第二种方法是根据指定范围进行赋值,如:

Int array2[] = Arrays.copyOfRange(array,5,10);将array中第5位到第9位的元素复制到array2中。

E.比较数组:

通常使用Arrays.equals()方法进行比较,返回值为boolean类型,如Arrays.equals(array,array2);

F.数组排序:

在java中,通常可以通过循环,按照特定的业务逻辑进行排序,如果对元素没有特殊要求,则可以通过Array.sort()方法进行排序,如:Arrays.sort(array);对数组进行排序;

Arrays.sort(array,2,6);对数组的第2个元素到第5个元素进行排序。

三.Java中的数组与内存

在java中,若声明数组时直接进行赋值,则为数组分配的内存中直接存入数值;若声明数组时没有进行赋值,只说明了数组的大小size,则在数组的内存块中,有size个状态为null的内存块被占用;

当程序执行结束后,数组的有效长度如果变小,这时需要注意数组原先占用的内存块不会被jvm处理,如果这种情况比较多,则会发生内存泄漏,此时需要程序员在使用数组后,及时对无效的资源进行释放,即在数组的该元素为空,array[index] = null.

四.总结

在java中,数组是经常使用的技术,通过一个能够存储多个相同类型数据元素的容器来实现各种需求,同时在数组内部可以通过位置下标来快速所以数据,增加了java程序的可读性与健壮性;在使用数组的同时,也需要注意数组容易造成的内存泄漏等问题。

400-611-6270

Copyright ©2004-2024 华清远见 版权所有
京ICP备16055225号,京公海网安备11010802025203号