数组

数组

3.14.什么是数组?

相同数据类型的数据按照顺序组成的复合数据类型就是数组。

  1.相同数据类型的数据----将来被保存到数组中的数据都是同一类型。【男澡堂子里都是男的】

  2.按照顺序

  3.复合数据类型

3.15.如何定义一个一维数组?

   格式: 数据类型  数组名称[];

            数据类型  []数组名称;

   数组的定义与变量的定义相似,只是需要”[]”与变量区分,因此上”[]”就是数组的标志。

   名称的前面/后面出现一个“[]”就是一维数组,有两个”[][]”就是二维数组,两个以上就是多维数组。

3.16.如何创建一个一维数组?

     创建数组实际上就是为数组开辟指定的存储空间,用来保存一组数组。

  1.先定义,后创建

     数据类型  数组名称[];

     数据类型  []数组名称;

     数组名称 = new 数据类型[指定的存储空间];

     指定的存储空间是一个整数int

public  class  ShuZuDemo1{
	public static  void main(String args[]){
     int shuzu3[];
	 shuzu3=new int[4];
	 char []shuzu4;
	 shuzu4 = new char[5];
        }
}

2.定义+创建

   数据类型  数组名称[ ] = new 数据类型[指定的存储空间];

   数据类型  [ ]数组名称 = new 数据类型[指定的存储空间];

public  class  ShuZuDemo1{
	public static  void main(String args[]){
        int shuzu5[]=new int[4];
        char []shuzu6=new char[5];
	}
}

3.17.如何为一维数组赋值?

  1.逐个赋值---就是挨个为数组的每一个存储空间存放数据值。

     因为是按照顺序存放数据的,顺序是从0开始的,每一顺序编号就是一个数组的存储空间,这个顺序编号就叫下标。当保存在数组中的数据超过数组指定的存储空间就是会出错。

     java.lang.ArrayIndexOutOfBoundsException: 5

     格式: 数组名称[下标] =  数据值;

 2.直接赋值---就是在创建数组的时候将数据值保存到数组中。

   2.1  new 数据类型[]{数据值1,数据值2,...,数据值n};

          直接赋值时创建数组的时候不能指定存储空间

   2.2  数据类型  数组名称[]={数据值1,数据值2,...,数据值n};

public  class  ShuZuDemo2{
	public static  void main(String args[]){
      //1.逐个赋值
		  char shuzu1[]=new char[5];
          shuzu1[0]='A';
		  shuzu1[1]='B';
	      shuzu1[2]='C';
		  shuzu1[3]='D';
		  shuzu1[4]='E';
      //2.直接赋值
          shuzu2 = new int[]{100,200,300};
          char  shuzu4[]={'h','e','l','l','o'};
        }
}

3.18.如何从一维数组中取值?

    只要我们能够得到数组的存储位置,就可以得到数组中的数据值。

    格式:数组名称[下标]

    shuzu1[2]---从shuzu1这个数组中得到第3个位置中保存的数据值。

例如:

    char shuzu1[]={'h','e','l','l','o'};

    System.out.println("取出数组中的最后一个值---"+shuzu1[4]);

3.19.一维数组的length属性

   length表示指定空间大小

   例如:

public  class  Length{
	public static  void main(String args[]){
       //length表示指定空间大小
         int shuzu2[]=new int[4];
         shuzu2[0]=120;
         shuzu2[2]=119;
         System.out.println("shuzu2的length属性---"+shuzu2.length); //4
       //length表示数组元素个数【指定空间大小】
         char shuzu3[]={'h','e','l','l','o'};
         System.out.println("shuzu3的length属性---"+shuzu3.length); //5
             }
}

3.20.数组的内存结构

3.21.循环遍历一维数组

public  class  ShuZuDemo4{
	public static  void main(String args[]){
		char shuzu1[]={'h','e','l','l','o'};
		//for循环遍历数组
		for(int i=0;i<shuzu1.length;i++){
			System.out.println("char数组shuzu1--"+shuzu1[i]);
		      }
		System.out.println("_______________");
		//while循环遍历数组
        int j=0;
        while(j<shuzu1.length){
			System.out.println("char数组shuzu1--"+shuzu1[j]);
			j++;
		      }
		System.out.println("_______________");
		int k=0;
		do{
           System.out.println("char数组shuzu1--"+shuzu1[k]);
		   k++;
		}while(k<shuzu1.length);
	}
}

3.22.增强的for循环遍历一维数组

    增强的for循环格式:

    for(数组的数据类型  变量名称 : 被遍历的数组名称){

                   循环体;

            }

    例如:

public  class  ShuZuDemo5{
	public static  void main(String args[]){
         char shuzu1[]={'h','e','l','l','o'};
         for(char value:shuzu1){
         System.out.println("char数组shuzu1--"+value);
               }
        }
}

3.23.如何定义一个二维数组?

       格式: 数据类型  数组名称[][];

       数据类型  [][]数组名称;

3.24.如何创建一个二维数组?
       二维数组可以保存一个类似表格一样的数据,所以我们可以认为二维数组就是一个表格。

   1.先定义,后创建

     数据类型  数组名称[][];

     数据类型  [][]数组名称;

     数组名称=new 数据类型[表格行][行中的列];

  例如:

      int  shuzu1[][];

      shuzu1 = new int[2][3];

   2.定义+创建

     数据类型  数组名称[][] = new 数据类型[表格行][行中的列];

     数据类型  [][]数组名称 = new 数据类型[表格行][行中的列];

   例如:

      int  shuzu1[][]=new int[2][3];

3.25.如何为二维数组赋值?

   1.逐个赋值---就是挨个为数组的每一个存储空间存放数据值。

     例如: 

  int  shuzu1[][]=new int[2][3];

     shuzu1[0][0]=100;

     shuzu1[0][1]=200;

     shuzu1[0][2]=300;

     shuzu1[1][0]=100;

     shuzu1[1][1]=200;

     shuzu1[1][2]=300;

shuzu1[0][0]=100

shuzu1[0][1]=200;

shuzu1[0][2]=300;

shuzu1[1][0]=100;

shuzu1[1][1]=200;

shuzu1[1][2]=300;

2.直接赋值---就是在创建数组的时候将数据值保存到数组中。

   2.1  new 数据类型[][]{{数据值1,数据值2,......数据n},{数据值1,数据值2,......数据n}};

          //创建数组的时候不能指定存储空间

   2.2  数据类型  数组名称[]={{数据值1,数据值2,...数据n},{数据值1,数据值2,...数据n}};

         int  shuzu1[][]=new int[][]{{100,200,300},{400,500,600}};

         int  shuzu1[][]={{100,200,300},{400,500,600}};

3.26.如何从二维数组中取值?

       只要我们能够得到数组的存储位置,就可以得到数组中的数据值。

       格式:数组名称[行][列];

      shuzu1[2][3]---从shuzu1这个数组中得到第3行,第4列中保存的数据值。

3.27.二维数组的length属性 -- 行

public  class  Length2{
	public static  void main(String args[]){
       int  shuzu1[][]=new int[2][3];
       shuzu1[0][0]=100;
       shuzu1[0][1]=200;
       shuzu1[0][2]=300;
  System.out.println(“shuzu1的length===”+shuzu1.length); //2

       int  shuzu2[][]={{100,200,300},{400,500,600},{700,800,900}};
  System.out.println("shuzu2的length==="+shuzu2.length); //3
       }
}

3.28.循环遍历二维数组

        使用双层循环结构,外层控制行,内层控制列

public  class  ErWei{
	public static  void main(String args[]){
      int  shuzu2[][]={{100,200,300},{400,500,600},{700,800,900}};
for(int i=0;i<shuzu2.length;i++){
      for(int j=0;j<3;j++){
       System.out.println("shuzu2的值==="+shuzu2[i][j]);
     }
}

        增强的for循环

public  class  ErWei2{
	public static  void main(String args[]){
char [][]chararray1=new char[][]{{'h','e','l','l','o'},				
                                 {'w','o','r','l','d'}};
    for(char valarray[]:chararray1){ 
	     for(char val:valarray){
		System.out.println("chararray1=="+val);
	}				
}

3.28.认识Arrays类【数组的帮助类】   

     Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法

    Arrays常用函数(都是静态的)

1.void Array.sort(Object[] array) 对数组按照升序排序

2.oid Array.sort(Object[] array, int from, int to) 对数组元素指定范围进行排序(排序范围是从元素下标为from,到下标为to-1的元素进行排序)

3.Arrays.fill(Object[] array,Object object)可以为数组元素填充相同的值

4.Arrays.fill(Object[] array,int from,int to,Object object)对数组的部分元素填充一个值,从起始位置到结束位置,取头不取尾

5.Arrays.toString(Object[] array)返回数组的字符串形式

3.29.基本数据类型与复合数据类型的区别?

基本数据类型它旨在栈内保存数据,当需要使用数据时,基本数据类型运行的会更快;

复合数据类型是在栈内保存数据在堆内的位置,当需要使用数据时,通过栈内的位置,在堆内引用出具体的数据;

因此,复合数据类型会比基本数据类型在使用时,运行的慢一些。

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值