小仙的第五天 数组

217 阅读2分钟

▼数组声明与创建

声明

int[] intAry; 或 int intAry[];

创建

intAry = new int[5];

声明且创建

int[] intAry=new int[5];

声明且初始化

int[] intAry={1,2,3,4,5,6,7,8,9,10};//数组使用花括号{}初始化,不是中括号[]

注意4个点:

1,int类型本身是一个类,可以实例化,虽然int是基本数据类型,但本质是面向对象的类.

2,创建时,new的int是小写,一般new后面的类名是大写,比如Scanner;同时int[5]是中括号,不是小括号();

3,既然创建是new产生,那数组本质是类实例对象.例int型数组是int类的实例对象.

4,数组创建后,根据数据类型,数组元素是有缺省值的.int型是0,浮点型是0.0,一切类的类型是null.

▼冒泡排序

package com.xian.ary;

public class Ary4_1 {
	public static void main(String[] args) {
		int[] a = {34,53,12,32,56,17};
		
		
		//冒泡一趟排好一个元素,那多少个元素,排多少次
		for(int i=0;i<a.length-1;i++) {
                        //每一趟后,youxu
			for(int j=0;j<a.length-i-1;j++) {
				if(a[j]>a[j+1]) {
					int temp = a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
				}
			}
		}
		
		
		//打印排序后结果
		for(int n:a) {
			System.out.println(n);
		}
	}
}

▼二维数组声明创建初始化
声明,创建
float[][] floatAry;
floatAry = new float[3][5];
声明且创建
float[][] floatAry = new float[3][5];
声明且初始化
float[][] floatAry = {{23,67,51},{98,34},{12}}

▼二维数组内部组织

floatAry为例二维数组的本质是一个"float数组类型"数组,数组类型是引用类型,元素值存放对一维数组引用,各元素是一个一维数组"float类型",float类型是基本数据类型.
二维数组本质是一维数组组合,一维数组可以仅是一个声明,即
float[][] floatAry;
floatAry = new float[3][];//此二维数组创建形式合法
System.out.println(floatAry.length);//此时输出二维数组长度为3
System.out.println(floatAry[0]); //此时输出:null,即缺省值是null,说明类型是类,不是float型,存放应该是引用
floatAry[0] = 21.0f;//报错:Type mismatch: cannot convert from float to float[],类型不匹配,不能将float转换为float数组;
System.out.println(floatAry[0][0]);//异常,下标越界
上面创建二维数组,只指定行数为3,列数未指定
本质上二维数组中各一维数组并未分配内存
这一步只声明了3个一维数组,floatAry[0],floatAry[1],floatAry[2],是一维数组的名字,
对这些一维数组还需要进一步创建:
floatAry[0]=new float[3];
floatAry[1]=new float[4];
floatAry[2]=new float[5];
各一维数组是各自独立,列数不同,互不影响.