zoukankan      html  css  js  c++  java
  • Java语言基础:数组

    阅读目录:

      1.数组的定义

      2.数组的内存分配及特点 

      3.数组操作常见问题

        

      4.数组常见操作

        获取最值(最大值,最小值)

        排序(选择排序,冒泡排序)

        折半查找(二分查找)

      5.数组中的数组

    1.数组的定义

    概念:同一种类型数据的集合。其实数组就是一个容器。

    数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。

    格式1:

      元素类型【】数组名 = new 元素类型【元素个数或数组长度】;

    实例: int[] arr = new int[5];

    格式2:

      元素类型【】数组名 = new 元素类型【】{元素,元素,....};

    实例:int [] arr = new int[] {3,5,1,7}

        

    示例:

    class ArrayDemo
    {
        public static void main(String[] args)
        {
            //元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
            //示例:int [] arr = new int[5];
            
            int age =3
            int [] arr = new int[3];   //建了一个箱子arr, 里面有3个格子、顾头不顾尾
            arr[0] = 89;
            System.out.println(arr[0]);
        }
    }

    2.数组的内存分配及特点 

    内存的划分:
    1.寄存器——处理cpu
    2.本地方法区——所在系统相关,java虚拟机的版本,分版本,
    3.方法区——欠
    4.栈内存——存储的都是局部变量。而且变量所属的作用域一旦结束,该变量就自动释放。
    5.堆内存——存储是数组和对象(其他数组就是对象)凡是new建立在堆中。
        特点:
        1.每一个实体都有首地址值
        2.堆内存中的每一个变量都有默认初始值,根据类型的不同而不同,整数是0.小数是0

     基本格式:

    class ArrayDemo3
    {
        public static void main(String[] args)
        {
            //格式1
            /*
            需要一个容器,但是不明确容器的具体数据。
            */
            int[] arr = new int[3];
    
            /*
            需要一个容器,存储已经知道的具体数据。
            */
            //元素类型[] 数组名 = new 元素类型[] {元素,元素,...};
            int[] arr = new int[] {11,22,33};
            int[] arr = {11,22,33};
        }
    }

    3.数组操作常见问题

    class ArrayDemo2
    {
        public static void main(String[] args)
        {
            int[] arr = new int[3];
            System.out.println(arr[3]);//ArrayIndexOutOfBoundsException;
    
            //arr = null;
            System.out.println(arr[0]);//NullPointerException
            //当引用型变量没有任何实体指向时,还在用其操作实体。就会发生该异常
            System.out.printl(arr);//  [I@c17164]
        }
    }

    4.数组常见操作

       获取最值(最大值,最小值)

    class ArrayDemo5
    {
        public static void main(String[] args)
        {
            /*
            数组的常见操作:存和取。数组的便遍历
            核心思想:就是对角标的操作。
    
            获取数组中的最大值。
            思路:
            1.需要进行比较。并定义变量记录每次比较后较大的值
            2.对数组中的元素进行遍历取出,和变量中记录的元素进行比较
            3.如果遍历到的元素大于变量中记录的元素,就用变量记录住该大的值
            4.遍历结果,该变量记录就是最大值。
            定义一个功能来实现,
            明确一:结果,是数组中的元素。int
            明确二:未知内容,数组
            */
            int[] arr = {11,22,3public static int
            int max = getMax(arr);
            System.out.println("max=" + max)
        }
    
        public static int getMax(int[] arr)
        {
            //定义变量记录较大的值。
            int max = arr[0];
            for(int x=1; x<arr.length; x++)
            {
                if(arr[x]>max)
                    max = arr[x];
            }
            return max;
        }
    
        public static int getMax_2(int[] arr)
        {
            //定义变量记录较大的值。
            int maxIndex = arr[0];
            for(int x=1; x<arr.length; x++)
            {
                if(arr[x]>arr[maxIndex])
                    maxIndex = x;
            }
            return arr[maxIndex  ];
        }
    }

       排序(选择排序,冒泡排序)

    class ArrayDemo6
    {
        //遍历数组的功能。
        public static void printArray(int[] arr)
        {
            System.out.print("[");
            for(int x=0; x<arr.length; x++)
            {
                if(x!=arr.length-1)
                    System.out.print(arr[x]+", ");
                else
                    System.out.println(arr[x]+"]");
            }
        }
    
        public static void main(String[] args)
        {
            //选择排序
            int[] arr = {11,22,33,44,55};
    
            printArray(arr);
            selectSort(arr);
            printArray(arr);
        }
    
        /*
        选择排序
        */
        public static int[] selectSort(int[] arr)
        {
            for(int x=0; x<arr.length-1;x++)
            {
                for(int y=x+1;y<arr.length;y++)
                {
                    if(arr[x]>arr[y])
                    {
                        int temp = arr[x];
                        arr[x] = arr[y];
                        arr[y] = temp;
                    }
                }
            }
        }
    }

       折半查找(二分查找)

    5.数组中的数组

     

  • 相关阅读:
    Pycharm 中的翻译工具
    服务器响应慢问题
    将博客搬至CSDN
    【索引】索引的介绍与优化
    【Java杂记】Equals 和 hashCode
    【Java】JVM(六)虚拟机字节码执行引擎
    【Java】JVM(五)、虚拟机类加载机制
    【Java】JVM(四)、虚拟机参数配置
    【Java】JVM(三)、Java垃圾收集器
    【Java】JVM(二)、Java垃圾收集算法
  • 原文地址:https://www.cnblogs.com/zhongbokun/p/10841940.html
Copyright © 2011-2022 走看看