• 数组


    数组中常见的错误:     1.NullPointerExcepation : 空指针异常          原因:引用的类型变量没有指向任何的对象,在这种情况下还访问了它的属性和方法。

        一个对象如果使用完了不会立马释放,只是将这个对象变为一个垃圾对象,由     垃圾回收机制自己来释放。,我们没办法操作它释放。     2.ArrayIndexOutOfBoundsExcepation :数组下表越界

    //创建一个int类型的数组
      //arr : 是一个变量  只是数组的一个引用地址
      //局部变量存在栈中
      //成员变量 -- 属性  --- > 对堆区中
      //静态变量  --- >  共享区域

    java中数组一样存在多维 : 二维数组 ,三维数组

    二维数组的定义 格式:
      // 数据类型[][] 数组名 = new 数据类型[][];

    想要接收二维数组中的元素 : 需要用一个一维数组来接收

    /动态初始化

       //数据类型[][] 数组名 = new 数据类型[][];

       //注意 :前面中括号中数值指的是二维数组元素个数 , 后面一个是指二维数组    //中一维数组的元素个数。

      //静态初始化        //数据类型[][] 数组名称 = {{元素1,..},{元素1,..},{元素1,..}};

       //二维数组中的元素一定是一维数组。

    /总结:数组的特点:

        /*      1.数组中只能存同一种数据类型的数据。      2.数组他会给存入的元素默认分配一个索引值 ,索引从0开始。      3.数组一旦初始化,长度就固定了。      4.数组中元素的内存地址是连续的。

    class Demo11 {  public static void main(String[] args)  {      //定义一个int类型的数组   //数组的长度可以指定也可以不是定   int[] arr = new int[10];   //数组中添加元素   arr[0] = 1;   arr[1] = 2;   //如果元素没有被赋值 默认以0来填充。

      //遍历数组   for(int i = 0 ; i <arr.length ;i++){       System.out.println(arr[i]);   }

      //-------------数组的初始化方式-------------   //1.静态初始化 : 这个值给多少就是多少,不能过改变    int[] arr1 = {1,2,3,4,5,6};   //2.动态初始化 : 不可变的数组  可变数组--->集合  ArrayList    int[] arr = new int[10];  

      //定义一个字符串数组   //默认为:null    String[] strArr = new String[10];

         } }

    class Demo12 {  public static void main(String[] args)  {      //需求:指定一个int类型的数组,给一定元素,将元素从小到大进行排序。   //初始化一个数组   int[] arr = {7,3,9,12,6,2};   //选择排序 : 效率太低比较的次数太多   for(int i = 0;i<arr.length;i++){       for(int j= 1 ; j<arr.length;j++){     if(arr[j-1]>arr[j]){      int temp = arr[j];      arr[j] = arr[j-1];      arr[j-1] = temp;

        }    }   }

      //遍历数组   for(int i=0;i<arr.length;i++){

       System.out.println(arr[i]);   }  

     } }

    class Demo14 {  public static void main(String[] args)  {      int num = 4;   int[] arr ={1,2,3,4,5,6};

      //需求:输入一个数,查找数组中是否右这个数   //遍历加判断   for(int i = 0;i < arr.length;i++){       if(num==arr[i]){          System.out.println("数组中存在这个值,索引为:"+i);    }   }  } }

    class Demo15 {  public static void main(String[] args)  {      //二分法 : 前提 : 数组要排序好

      int[] arr = {1,2,3,4,5,6};   int num = 5;

      int max = arr.length-1;   int min = 0;   int mid = (max + min) / 2;

      while(true){       if(num > arr[mid]){         min = mid +1;

       }else if (num < arr[mid])    {

        max = mid-1;    }else {          System.out.println("找到了:"+mid);     break;    }

       //没有找到    if(min > max){          System.out.println("没有找到");     break;    }    //重新设置中间值    mid = (max + min)/2;      }

     } }

    class Demo13 {  public static void main(String[] args)  {      //需求:每次将数组中最大的元素把他移到最右边去   int[] arr = {7,3,9,12,6,2};   //将最大的值移到最右边   //面试经常考的   //------这中排序就是冒泡排序-------------------   for(int i =0;i<arr.length-1;i++){

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

        if(arr[j]>arr[j+1]){      int temp = arr[j];      arr[j]=arr[j+1];      arr[j+1] = temp;     }    }    }

    /*   //将第二大的值移到倒数第二位   for(int i =0;i<arr.length-1-1;i++){       if(arr[i]>arr[i+1]){          int temp = arr[i];     arr[i]=arr[i+1];     arr[i+1] = temp;

       }   }

      for(int i =0;i<arr.length-1-2;i++){       if(arr[i]>arr[i+1]){          int temp = arr[i];     arr[i]=arr[i+1];     arr[i+1] = temp;

       }   }

      for(int i =0;i<arr.length-1-3;i++){       if(arr[i]>arr[i+1]){          int temp = arr[i];     arr[i]=arr[i+1];     arr[i+1] = temp;

       }   }

      for(int i =0;i<arr.length-1-4;i++){       if(arr[i]>arr[i+1]){          int temp = arr[i];     arr[i]=arr[i+1];     arr[i+1] = temp;

       }   } */   //遍历数组   for(int j = 0 ; j<arr.length;j++){       System.out.println(arr[j]);   }  } }

  • 相关阅读:
    转:孟岩老大的忠告谈谈如何写技术文章
    base html / div / css / HTML / DIV / CSS
    js Connection
    db oracle config
    UNIX + OS IBM AIX 5L HACMP
    JAVA EE JSP collection
    地址和指针的概念
    全局变量
    地址和指针的概念
    内存数组的存储
  • 原文地址:https://www.cnblogs.com/aa-bb/p/6105746.html
Copyright © 2020-2023  润新知