java 基础学习------第四章数组的学习

来源:互联网 发布:淘宝教学课程在哪里 编辑:程序博客网 时间:2024/05/22 04:55

第四章数组


目录

一维数组声明     数组元素的引用     数组元素的默认初始化  创建数组   数组初始化  多维数组    多维数组初始化

数组排序

 

数组的概述
  数组是多个相同类型数据的组合,实现对这些数据的统一管理。
  数组中的元素可以是任何数据类型,包括基本类型和引用类型
  数组属于引用类型,可以理解为对象(),数组中的每个元素相当于该对象的成员变量


一维数组的声明:
    方式:类型  数组名[]  或 类型[]  数组名;
    注意:这两种定义做完之后,数组中是没有元素值的;


数组初始化(动态初始化和静态初始化)
    java中的数组必须先初始化,然后才能使用

    所谓初始化: 就是为数组中的数组元素分配内存空间,并未每个数组云元素赋值
    使用new关键字创建数组对象,完成静态初始化或动态初始化

    java中可以使用关键字new创建数组对象,完成初始化或动态初始化

 

静态初始化
     静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度
     格式:
 数组类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
 举例:int[] arr = new int[]{1,2,3};
     解释:定义了一个int类型的数组,这个数组中可以存放3个int类型的值,并且分别

是1,2,3.
     简化写法:int[] arr = {1,2,3};

 动态初始化
      动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
      数组长度其实就是数组中元素的个数
    eg:  int[] arr=new int[3];
      解释:定义一个int类型的数组,这个数组可以存放3个int类型的值


输出数组中元素的值
     定义并用运算符new 为之分配空间后,才可以引用数组中的某个元素;
     每个数组都有一个属性length指定它 的长度,例如:a.length指明数组 a 的长

度(元素个数)
    数组名和编号的配合就可以获取数组中的指定编号的元素。这个编号的专业叫法

:索引(下标)
     数组元素的引用方式:数组名[数组元素下标]
     数组元素下标可以是整形常量整形表达式。如:a[3],b[i],a[6*i]
     数组元素下标从0开始;长度为n的数组合法下标取值范围:0至n-1


数组元素的默认初始化
      数组是引用类型,它的元素相当于类的成员变量,因此为数组分配空间后,其中

的每个元素也被按照成员变量同样的方式被隐式初始化。例如:
       byte short int long 默认值为0
      float  double        默认值为0
      char       默认值为0
      boolean      默认值为0
      string(引用类型) 类      null
 


给数组中元素赋值
   
   数组名[下标] = 值(表达式)


注意:
 int[] a = new int[]; new 的时候就要分配内存,不指定就不知道分配多少
 数组一旦初始化,长度不可变。长度确定下来了

           int[]{1,2,3};也可以
           int[] a
            a={1,2,3};//错误
 
数组常见问题

    数组索引越界:
         ArrauIndexOutOfBoundsException
         访问到了数组中的不存在的索引时发生
    空指针异常
         NullPointerException
         数组引用没有指向实体,却在操作实体中的元素时


数组的遍历
public abstract class Test06 {

 public static void main(String[] args) {

  //数组的遍历
  //方式一:for 循环

  int[] a={2,4,6,8,10};
  for(int i = 0;i<a.length;i++){
   System.out.println(a[i]);
  }
  
  //方式二: 增强for循环
  for(int x:a){
   System.out.println(x);
  }
  
  String[] arr1 ={"张三","李四","王五","赵六"};
  for(String s :arr1){
   System.out.println(s);
  }
 }

}

 


冒泡排序
   什么是冒泡排序
         冒泡排序算法的得名是由于数值“像气泡一样”从序列的一端浮动到另一端

冒泡排序原理
    比较相邻的元素,如果第一个比第二个大,就交换他们两个
    对美一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后

的元素赢i回事最大的数
    针对所有的元素重复以上的步骤,除了最后一个
    持续每次对越来越少的元素重复上面的步骤,知道没有任何一对数字需要比较


多维数组
public class DuoWei01 {

   public static void main(String[] args) {
   
  //二维数组
  int[] arr = {1,2,3,4};
  
  int [][] arr1 = {{1,2,3,4},{1,2},{1,3}};
  
  //二维数组的长度是行
  //初始化的时候必须指定
  int[] arr2 = new int[4];
  int[][] arr3 = new int[3][];
  arr3[0] = new int[5];
  arr3[1] = new int[3];
  arr3[2] = new int[4];
  
  System.out.println(arr1.length);//打印的是二维数组arr1中数组的

个数
  System.out.println(arr1[0].length);//打印的是二维数组arr1的中数

组{1,2,3,4}的长度
    
  for(int i=0;i<arr1.length;i++){
   
   for(int j=0;j<arr1[i].length;j++){
    System.out.println(arr1[i][j]+"\t");
   }
   System.out.println();
  }
 }

}


多维数组初始化
     静态初始化;
          int intArray[][] = {{1,2}{2,3}{3,4,5}};
   int intArray[3][2] = {{1,2}{2,3}{4,5}};//错误,等号左边不能指定维数

     动态初始化
          int a[][] = new int[4][5];
         
          int b[][] = new int[3][]
              b[0] = new int[2];
              b[1] = new int[3];
              b[2] = new int[5];

 

 

0 0
原创粉丝点击