小学生学习Java数组

数组


一:作用

        数组的作用是保存一组相同数据类型的数据。

二:声明数组      

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

    数据类型[] 数组名 = 初值

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

    注意:这里的数据类型,指的是,数组中保存的数据的类型


栈内存特点

  1.当函数执行完毕,系统会自动帮你释放

  2.现进后出

堆内存特点

  1.分配内存特点

  2.有初始值,默认值为0

  3.有垃圾回收机制



三:数组遍历

public class Array {   
    public static void main(String[] args) {      
        int[] array = {1, 2, 3, 5};       
        
         // 打印所有数组元素      
        for (int i = 0; i < array.length; i++) {    
            System.out.println(array[i] + " ");

        }

         // 计算所有元素的总和

        int total = 0;      
        for (int i = 0; i < array.length; i++) {
             total += array[i];     
         }      
        System.out.println("Total is " + total);

        

        // 查找最大元素

        int max = array[0];      
        for (int i = 1; i < array.length; i++) {         
            if (array[i] > max) max = array[i];      
        }      
        System.out.println("Max is " + max);

     }
}



四:数组元素反转


public class fun {

    public static void change(int[] array) {

        int num = array.length / 2;

        for (int i = 0; i < num; i++) {

            int temp = array[i];

            array[i] =array[array.length-i-1];

            array[array.length-i-1] = temp;

    }

}

    public static void main(String[] args) {

        int [] a = new int[] {1,2,3,4,5,6}; 

            change(a);

        System.out.println(Arrays.toString(a));    	   

    }
}



五:冒泡排序


核心思想:相邻两个数比较 换位
public class fun {

    public static void main(String[] args) {

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

        // 外循环控制一共比了多少趟

        // 内循环控制一共比了多少次

        for (int i = 0; i < array.length - 1; i++) {

            for (int j = 0; j < array.length - 1 - i; j++) {

                // 内循环-1 防止数组越界

                // 循环一次 确定一个数 每次都少比一次

            if (array[j] > array[j + 1]) {

                int temp = array[j];

                array[j] = array[j + 1];

                array[j + 1] = temp;

                }

            }

        }

    }

 }


六:选择排序

核心思想:选择一个数(选第一个数)和其他的数进行比较 交换


public class fun {

    public static void main(String[] args) {

        int[] array = new int[] {3,2,1,5};

        for (int i = 0; i < array.length - 1; i++) {

            for (int j = i+1; j < array.length; j++) {

                // 用第0个数和剩下的每一个数比较;

                if(array[i]>array[j]) {

                    int temp =array[i];

                    array[i] = array[j];

                    array[j]= temp;

        }

      }

    }

        System.out.println(Arrays.toString(array));

  }

}


七: 折半查找(必须是有序的数组


public class fun {

    public static void main(String[] args) {

        int[] array = {1,22,33,44,55,66};

        //先声明能使用到的变量

        int key = 1;

        int min = 0;

        int max = array.length - 1;

        int mid = (min + max) / 2;

        // 循环---明确知道循环的停止条件

        while(array[mid] != key) {

            // 判断key和中间角标值,来挪动最小角标或者最大角标

            if(key > array[mid]) {

                min = mid + 1;

            }

            if(key < array[mid]) {

                max = mid - 1;

            }

            // 每次循环都要有折半的操作

            mid = (min + max) / 2;

            // 数组中没有这个数的时候

            if(min > max) {
        
            //没有这个数,使用-1表示

            mid = -1;

            break;

            }

        }

        System.out.println("该值的坐标是:" + mid);

}


八:二维数组

  

   保存多个相同类型的一维数组,几维数组就几个[];

    数据类型[][] 数组名 = 初值

  int a[][] = new int[2][3]; // 二维数组 a 可以看成一个两行三列的数组。

    

猜你喜欢

转载自blog.csdn.net/zmw1224/article/details/80231048