javaSE---数组

数组

1.数组的定义

  • 1.1什么是数组
    相同数据类型的数据按照顺序组成的复合数据类型就是数组。
    1.相同数据类型的数据----将来被保存到数组中的数据都是同一类型。
    【男澡堂子里都是男的】
    2.按照顺序
    3.复合数据类型
  • 1.2.如何定义一个一维数组
    格式: 数据类型 数组名称[];
    数据类型 []数组名称;
    数组的定义与变量的定义相似,只是需要”[]”与变量区分,因此上”[]”就是数组的标志。
    名称的前面/后面出现一个“[]”就是一维数组,有两个”[][]”就是二维数组,两个以上就是多维数组。
  • 1.3如何创建一个一维数组?
    创建数组实际上就是为数组开辟指定的存储空间,用来保存一组数组。
    1.先定义,后创建
    数据类型 数组名称[];
    数据类型 []数组名称;
    数组名称 = new 数据类型[指定的存储空间];
    指定的存储空间是一个整数int
    2.定义+创建
    数据类型 数组名称[ ] = new 数据类型[指定的存储空间];
    数据类型 [ ]数组名称 = new 数据类型[指定的存储空间];
    例如:
public class ArrayDoem1 {
	public static void mian(String []args) {
		//数组的创建
		//1.先定义,后创建
   		//数据类型  数组名称[];
   		//数据类型  []数组名称;
   		//数组名称 = new 数据类型[指定的存储空间];
		int arr1[];
		arr1=new int [5];
		int []arr2;
		arr2=new int [5];
		//2.定义+创建
   		//数据类型  数组名称[ ] = new 数据类型[指定的存储空间];
   		//数据类型  [ ]数组名称 = new 数据类型[指定的存储空间];
		int arr3[]=new int[5];
		int []arr4=new int[5];
		}
	}
  • 1.4.如何为一维数组赋值
    1.逐个赋值—就是挨个为数组的每一个存储空间存放数据值。
    因为是按照顺序存放数据的,顺序是从0开始的,每一顺序编号就是一个数组的存储空间,这个顺序编号就叫下标。
    当保存在数组中的数据超过数组指定的存储空间就是会出错。
    java.lang.ArrayIndexOutOfBoundsException: 5
    格式: 数组名称[下标] = 数据值;
    2.直接赋值—就是在创建数组的时候将数据值保存到数组中。
    2.1 new 数据类型[]{数据值1,数据值2,…,数据值n};
    //创建数组的时候不能指定存储空间
    2.2 数据类型 数组名称[]={数据值1,数据值2,…,数据值n};
    例如:
package 十二月5;

public class ArrayDoem1 {
	public static void mian(String []args) {
		//1.先定义后赋值
		arr1[0]=1;
		arr1[1]=1;
		arr1[2]=1;
		arr1[3]=1;
		arr1[4]=1;
		System.out.println(arr1);
		//2.直接赋值
		int arr5[]= {100,200,300,400};
		int arr6[]=new int[] {500,600,700,800};
		System.out.print(arr5);
        System.out.print(arr6);		
	}

}

  • 1.5如何从一维数组中取值?
    只要我们能够得到数组的存储位置,就可以得到数组中的数据值。
    格式:数组名称[下标]
    shuzu1[2]—从shuzu1这个数组中得到第3个位置中保存的数据值。
    例如:
    char shuzu1[]={‘h’,‘e’,‘l’,‘l’,‘o’};
    System.out.println(“取出数组中的最后一个值—”+shuzu1[4]);

2一维数组中的length属性

length表示指定空间大小
例如:

	//length 表示空间大小
		int arr7[];
		arr7=new int[4];
		arr7[0]=100;
		arr7[2]=300;
		System.out.println("arr7.length="+arr7.length);
		//length 表示元素个数
		char arr8[]= {'h','e','l','l','o'};
		System.out.println("arr8.length="+arr8.length);

在这里插入图片描述

3.数组的内存结构图

在这里插入图片描述

4.遍历数组

4.1循环遍历数组

        //定义arr1
        int arr1[];
		arr1=new int [5];
		//给arr1赋值
		arr1[0]=1;
		arr1[1]=100;
		arr1[2]=1000;
		arr1[3]=10000;
		arr1[4]=100000;
		//循环遍历数组
		//for循环遍历
		System.out.println("for循环遍历arr1数组");
		for(int i=0;i<arr1.length;i++){
			System.out.println("arr1["+i+"]="+arr1[i]);
		}
		System.out.println("-------------------------------------");
		System.out.println("whlie循环遍历arr1数组");
		//while循环遍历
		int i=0;
		while(i<arr1.length) {
			System.out.println("arr1["+i+"]="+arr1[i]);
			i++;
		}
		System.out.println("-------------------------------------");
		System.out.println("do{}whlie循环遍历arr1数组");
		//do{}while循环遍历
		int k=0;
		do {
			System.out.println("arr1["+k+"]="+arr1[k]);
			k++;
		}while(k<arr1.length-1);

在这里插入图片描述
4.2增强的for循环遍历一维数组

//定义数组+赋值
char arr8[]= {'h','e','l','l','o'};
//增强for循环遍历数组
for(char value:arr8){
			System.out.println("char数组shuzu1--"+value);
			}

在这里插入图片描述

5.二维数组

5.1如何定义一个二维数组?
格式: 数据类型 数组名称[][];
数据类型 [][]数组名称;
5.2.如何创建一个二维数组?
二维数组可以保存一个类似表格一样的数据,所以我们可以认为二维数组就是一个表格。
1.先定义,后创建
数据类型 数组名称[][];
数据类型 [][]数组名称;
数组名称=new 数据类型[表格行][行中的列];
例如:

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

2.定义+创建
数据类型 数组名称[ ] = new 数据类型[表格行][行中的列];
数据类型 [ ]数组名称 = new 数据类型[表格行][行中的列];
例如:

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

5.3.如何为二维数组赋值?
5.3.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]=100shuzu1[0][1]=200;shuzu1[0][2]=300;
shuzu1[1][0]=100;shuzu1[1][1]=200;shuzu1[1][2]=300;

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

  • 1 new 数据类型[][]{{数据值1,数据值2,…数据n},{数据值1,数据值2,…数据n}};
    //创建数组的时候不能指定存储空间
  • 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}};

5.4如何从二维数组中取值?
只要我们能够得到数组的存储位置,就可以得到数组中的数据值。
格式:数组名称[行][列];
shuzu1[2][3]—从shuzu1这个数组中得到第3行,第4列中保存的数据值。
5.5二维数组的length属性 – 行数

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

在这里插入图片描述
5.6.循环遍历二维数组

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

int shuzu3[][]= {{100,200,300},{400,500,600},{700,800,900}};
		for(int x=0;x<shuzu3.length;x++) {
			for(int y=0;y<3;y++) {
				System.out.println("shuzu3的值="+shuzu3[x][y]);
			}
		}

在这里插入图片描述
增强for循环
例如:

//增强for循环
		char shuzu4[][]= {{'h','e','l','l','o'},{'w','o','r','l','d'}};
		for(char valarray[]:shuzu4) {
			for(char val:valarray) {
			System.out.println("shuzu4="+val);
			}
		}

在这里插入图片描述

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

Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法
Arrays常用函数(都是静态的)

  • 1.void Array.sort(Object[] array) 对数组按照升序排序
  • 2.void 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)返回数组的字符串形式

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

  • 基本数据类型只在栈内存中保存数据
  • 复合数据类型在栈内存和堆内存中都保存着数据(栈内存保存数据在堆内存的位置,堆内存保存真实数据)

由于计算执行时,总是先从栈内存中获取数据,所以基本数据类型的执行速度比复合数据类型的执行速度要快

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值