数组

1、数组概述

  • 数组是相同类型数据的有序集合。

  • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。

  • 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们。

2、数组声明创建

  • 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:

    dataType[]  arrayRefvar;   //首选的方法

    dataType arrayRefvar[];
  • Java语言使用new操作符来创建进数组,语法如下:

    dataType[]  arrayRefvar =new dataType[arraySize]; 

 

  • 数组的元素是通过索引访问的,数组索引从0开始。

  • 获取数组长度:

    arrays.length
    public class Demo01 {
       //变量的类型 变量名字 = 变量值
       //数组类型
       public static void main(String[] args) {
           int[] nums;  //1.声明一个数组

           nums = new int[10];  //2、创建一个数组

           //3、给数组元素中赋值
           nums[0] = 1;
           nums[1] = 2;
           nums[2] = 3;
           nums[3] = 4;
           nums[4] = 5;
           nums[5] = 6;
           nums[6] = 7;
           nums[7] = 8;
           nums[8] = 9;
           nums[9] = 10;

           //计算所有元素的和
           int sum = 0;
           //获取数组长度:arrays.length
           for (int i = 0; i <nums.length ; i++) {
               sum = sum +nums[i];
          }
           System.out.println("总和为:"+sum);
          }
      }

     

3、数组使用

  • For-Each循环

public class Demo02 {
   public static void main(String[] args) {


   int[] arrays = {1,2,3,4,5};

  for (int array:arrays){
       System.out.println(array);
  }
}

 

  • 数组作方法入参

  • 数组作返回值

public class Demo02 {
   public static void main(String[] args) {


   int[] arrays = {1,2,3,4,5};

 // for (int array:arrays){
     // System.out.println(array);
 // }

       int[] reverse = reverse(arrays);
       printArray(reverse);
}




   //打印数组元素
   public static void printArray(int[] arrays) {
       for (int i = 0; i < arrays.length ; i++) {
           System.out.print(arrays[i]+" ");
      }
  }
   //反转数组
   public static int[] reverse(int[] arrays){
       int[] result = new int[arrays.length];
       
       //反转操作
       for (int i = 0,j=result.length-1; i < arrays.length; i++) {
               result[j] = arrays[i];
      }
       return result;
  }
}

 

 

 

4、多维数组

public class Demo03 {
   public static void main(String[] args) {

       /*
          1,2 array[0]
          2,3 array[1]
          3,4 array[2]
          4,5 array[3]

        */
       int[][] array ={{1,2},{2,3},{3,4},{4,5}};


       printArray(array[0]);
       System.out.println(array[0][0]);

  }

   //打印数组元素
   public static void printArray(int[] arrays) {
       for (int i = 0; i < arrays.length ; i++) {
           System.out.print(arrays[i]+" ");
      }
  }
}

 

 

 

5、Arrays类

  • Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用(注意:是“不用”而不是“不能)

  • 具有以下常用功能: - 给数组赋值:通过fill方法。 - 对数组排序:通过sort方法,按升序。 - 比较数组:通过equals方法比较数组中元素值是否相等。 - 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。

 

6、冒泡排序

public class Demo05 {

   public static void main(String[] args) {
           int[] a ={1,5,12,62,1524,351,2,525,2,51};
           int[] sort = sort(a);//调用完我们自己写的排序方法后,返回一个排序后的数组
           System.out.println(Arrays.toString(sort));

  }

   public static int[] sort(int[] array){

       //临时变量
       int temp = 0;
       //外层循环,判断我们这个要走多少次;
       for (int i = 0; i < array.length-1 ; i++) {

           boolean flag = false; //通过flag表示位减少没有意义的比较

           //内层循环,比较两个数,如果第一个数,比第二个数大,则交换位置。

           for (int j = 0; j < array.length-1-i ; j++) {
                   if(array[j+1]<array[j]){
                       temp = array[j];
                       array[j] = array[j+1];
                       array[j+1] = temp;
                       flag = true;
                  }
          }
           if(flag==false){
               break;
          }
      }
       return array;
  }
}

 

posted @ 2021-11-03 23:58  Will凸^-^凸  阅读(185)  评论(0编辑  收藏  举报