▼数组声明与创建
声明
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];
各一维数组是各自独立,列数不同,互不影响.