Java基础语法—数组

数组

数组

  • 数组的定义:

    • 数组是相同类型数据的有序集合
    • 数组描述相同类型的数据并且按照一定先后顺序排列
    • 数组中每个数据称为数组元素,可以通过数组下标进行调用
  • 数组的特点:

    • 数组一旦被创建,大小不能被更改
    • 数组元素类型必须相同,不能出现混合类型
    • 数组元素可以是任何数据类型
    • 数组变量属于引用类型,数组也可以看出是对象,数组中每个元素相当于该对象的成员变量
  • 数组初始化:

    • 动态初始化:

      数据类型[] 数组名称 = new 数据类型[数组长度]

      public static void main(String[] args) {
              int[] arr = new int[5];   //动态初始化
              arr[0] = 1;
              arr[1] = 2;
              arr[2] = 3;
              arr[3] = 4;
              arr[4] = 5;
              for (int i = 0; i < arr.length; i++) {
                  System.out.print(arr[i]);
              }
          }
      
    • 静态初始化:

      1)数据类型[] 数组名称 = new 数据类型{元素1, 元素2,元素3}

      2)数据类型[] 数组名称 = {元素1, 元素2, 元素3}

      public static void main(String[] args) {
              int[] arr = new int[]{1, 2, 3, 4};     //静态初始化(1)
              for (int i = 0; i < arr.length; i++) {
                  System.out.print(arr[i]);
              }
              System.out.println("");
              int[] arr2 = {5, 6, 7, 8};				//静态初始化(2)
              for (int i = 0; i < arr2.length; i++) {
                  System.out.print(arr2[i]);
              }
          }
      

创建声明数组

  • 使用数组必须先声明,才能在程序中使用。

    dataType[] arrayRefVar;   //声明数组
    
  • 数组声明之后还需要创建。

    dataType[] arrayRefVar = new dataType[5]; //创建长度为5的数组
    

    注意:数组里面的元素都是通过索引访问的,索引是从0开始的。

    ​ 数组里面的元素如果没有赋值的话,会有默认值(如:数值默认0,String默认null)。

数组的使用

  • 数组可以通过利用该数组下标进行调用,如:for循环调用:
int[] arr2 = {5, 6, 7, 8};
        for (int i = 0; i < arr2.length; i++) {
            System.out.print(arr2[i]);
        }
  • forEach调用:
for (int x : arr2) {			//输出数组的所有元素,但不可获取数组下标
            System.out.print(x + "++");
        }
  • 用数组作为方法的参数:
public static void array(int[] arr2){				//定义一个输出数组的方法
        for (int i = 0; i < arr2.length; i++) {
            System.out.print(arr2[i]);
        }
public static void main(String args[]){
    int[] array = {1,2,3,4,5};
    array(array);  					//调用方法,输出数组array的元素
}

多维数组

​ 一般来说,Java里面是没有二维的说法的,二维数组是指一个特殊的一维数组,其中每个元素又是一个数组。

int[][] arrrays = new int[2][3];    //定义个二行三列的二维数组
  • 多维数组的使用:
    public static void main(String[] args) {
        int[][] array = {{0,0},{1,1},{2,2},{3,3}};      //定义一个4行2列的二维数组
        System.out.println(array[1][1] + " ");          //输出二维数组
        for (int i = 0; i < array.length; i++) {        //通过遍历输出二维数组所有元素
            for (int j = 0; j < array[i].length; j++) {
                System.out.print(array[i][j]);
            }
        }
    }

Arrays类(可查看jdk帮助文档)

  • 数组工具类java.util.Arrays

  • Arrays类中的方法都是static修饰的静态方法,使用时直接用类名进行调用,而不需要用对象来调用。

  • 一般Arrays类具有以下几种:

    1)toString:返回指定数组的内容的字符串表示形式。

        public static void main(String[] args) {
            int[] array = {1, 2, 3, 4, 5};
            String a = Arrays.toString(array);  //调用Arrays中toString方法将数组输出;
            System.out.println(a);			//[1, 2, 3, 4, 5]
        }

​ 2)sort:将指定的数组排序升序。

			int[] array1 = {4, 33, 2, 44, 6};
            Arrays.sort(array1);		//将array1进行升序排序
            System.out.println(Arrays.toString(array1));	//[2, 4, 6, 33, 44]

​ 3)hashCode:返回基于数组的内容的哈希代码。

		int[] array1 = {4, 33, 2, 44, 6};
		int b = Arrays.hashCode(array1);	//将array1转换成哈希代码
        System.out.println(b);				//30602190

​ 4)fill:

  • fill(int[] a, int val):将指定的int值来指定数组的每个元素的值。
  • fill(int[] a, int fromIndex, int toIndex, int val):指定int值为指定数组的每个元素对象的指定范围。
第一种fill方法:
    int[] array1 = {4, 33, 2, 44, 6};
	Arrays.fill(array1, 1);						//将指定的int值来指定数组的每个元素的值
    System.out.println(Arrays.toString(array1));	//[1, 1, 1, 1, 1]

第二种fill方法:
    int[] array1 = {4, 33, 2, 44, 6};
 	Arrays.fill(array1,1,3,8);  						//将索引为1到3(不包括3)的元素赋值8
    System.out.println(Arrays.toString(array1));		//[1, 8, 8, 1, 1]		

​ 5)binarySearch:搜索指定数组中的值指定的值使用二进制搜索法。应先进行sort排序。

 	int[] array1 = {1, 8, 8, 1, 1}; 	
	int c = Arrays.binarySearch(array1, 8);     //搜索array1中元素为8的值有几个
    System.out.println(c);						//2
posted @ 2021-03-16 19:11  VXZX  阅读(147)  评论(0)    收藏  举报