理解数组

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z_5201314/article/details/90144215
    1. 数组是一种常见的数据结构,可用于存储多个数据,每个数组元素放一个数据,通常通过数组元素的索引来访问数组元素,包括为数组元素赋值和取值,JAVA数组元素要求所有的数组元素具有相同的数据类型。因此,在一个数组中,数组元素的类型是唯一的,即一个数组里只能存储一种数据类型的数据。
    1. 一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,因此数组的长度是不可以改变的,JAVA的数组既可以存储基本类型的数据,也可以存储引用类型的数据。只要数组的元素具有相同的类型即可,数组本身也是一种数据类型,它本身就是一种引用类型。
    1. 定义数组:
      JAVA支持两种语法格式来定义数组:
      type [ ] arrayName;
      type arrayName [ ];
      对于这两种语法格式,通常推荐使用第一种格式,定义数组的时候不能指定数组的长度。
    1. 数组的初始化:
      数组必须先初始化,才可以使用,所谓初始化,就是为数组的数组元素分配内存空间,并为每个元素赋初始值。
      数组的初始化有两种方式:
      静态初始化:初始化时由程序员指定每个元素的初始值,有系统决定数组的长度。
      静态初始化语法格式:arrayName =new type[ ]{元素1,元素2,元素3};
      静态初始化简化语法:type [ ] arrayName={元素1,元素2,元素3};
      数组的定义和初始化同时完成,静态初始化语法:int [ ] a={1,2,3};
      动态初始化:初始化时由程序员只指定数组的长度,由系统为元素分配初始值。
      动态初始化语法格式:arrayName =new type[length ];
      数组的定义和初始化同时完成,动态初始化语法:int [ ] prices =new int[5];
    1. JAVA8强的工具类:Arrays
      JAVA提供的Arrays类包含的一些static修饰的方法可以直接操作数组,这个Arrays包含了如下几个static修饰的方法。

      1.int binarySearch(type[ ]a,type key):使用二分法查询到key元素值在a数组中出现的索引;如果a数组不包含key元素值,则返回负数。调用该方法时要求数组中元素已经按升序排列,这样才能得到正确的结果。
      2.int binarySearch(type[ ]a,int fromIndex,int toIndex,type key):这个方法与前一个方法类似,但它只搜索a数组中fromIndex到toIndex索引的元素。调用该方法时要求数组中元素已经按升序排列,这样才能得到正确的结果。
      3.type[ ]copyOf(type[ ]original,int length):这个方法将会把original数组复制成一个新数组,其中length是新数组的长度。如果length长度小于original数组的长度,则新数组就是原数组的前面length个元素;如果length长度大于original数组的长度,则新数组的前面元素就是原数组的所有元素,后面补充0(数值类型)、false(布尔类型)、或者null(引用类型)。
      4.type [ ]copyOfRange(type[ ]original,int from,int to):这个方法与前面的方法类似,但这个方法只复制original数组的from索引到to索引的元素。
      5.boolean equals(type[ ]a,type[ ]a2):如果a数组和a2数组的长度相等,而且a数组和a2数组的数组元素也一一相同,该方法就返回true。
      6.void fill(type[ ]a,type val):该方法将会把a数组的所有元素都赋值为val。
      7.void fill(type[ ]a,int fromIndex,int toIndex,type val):该方法与前一个方法的作用相同,区别只是该方法仅仅将a数组的fromIndex到toIndex索引的数组元素赋值为val。
      8.void sort(type[ ]a):该方法对a数组的数组元素进行排序。
      9.void sort(type[ ]a,int fromIndex,int toIndex):该方法与前一个方法相似,区别是该方法仅仅对fromIndex到toIndex索引的元素进行排序。
      10.String toString(type[ ]a):该方法将一个数组转换成一个字符串。该方法按顺序把多个数组元素连接在一起,多个数组元素使用英文逗号和空格隔开。

import java.util.Arrays;

public class ArraysTest {

	public static void main(String[] args) {
		//定义一个a数组
		int [] a=new int []{1,2,3,4,5};
		//定一个a2数组
		int [] a2=new int []{1,2,3,4,5};
		//a数组和a2数组的长度相等,每个元素依次相等,将输出true
		System.out.println("a数组和a2数组是否相等:"+Arrays.equals(a, a2));
		//通过复制a数组,生成一个新的b数组
		int [] b=Arrays.copyOf(a, 6);
		System.out.println("a数组和b数组是否相等:"+Arrays.equals(a, b));
		//输出b数组,将输出[1,2,3,4,5,0]
		System.out.println("b数组的元素为:"+Arrays.toString(b));
		//将b数组的第3个元素(包括)到第5个元素(不包括)赋值为1
		Arrays.fill(b, 2, 4, 1);
		//输出b数组,将输出[1,2,1,1,5,0]
		System.out.println("b数组的元素为:"+Arrays.toString(b));
		//对b数组进行排序
		Arrays.sort(b);
		//输出b数组的元素,将输出[0,1,1,1,2,5]
		System.out.println("b数组的元素为:"+Arrays.toString(b));
	}

}

猜你喜欢

转载自blog.csdn.net/z_5201314/article/details/90144215