java开发中经常使用的数组以及使用方法

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

  一.什么是数组

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

  2. 特点:

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

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

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

  3. 分类:

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

  二.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

  System.out.println(array[i]);

  }

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

  for(Integer data : array){

  System.out.println(data);

  }

  5. 类型转换:

  A. 数组转为Set集合:

  使用java api 中Arrays 工具类进行转换为list,再转为set:

  Set set = new HashSet(Arrays.asList(array));

  B.数组转为List集合:

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

  第二种,使用api java.util.Arrays进行转换:

  List 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程序的可读性与健壮性;在使用数组的同时,也需要注意数组容易造成的内存泄漏等问题。

相关标签 Java