【Java学习笔记7】数组Part Ⅱ:一维数组的使用

一、一维数组的声明和初始化

1.1 一维数组的声明方式

语法格式:

数据类型[] 数组名;// 首选的方法
或
数据类型 数组名[];// 效果相同,但不是首选方法

注意:

  • 如果只是单纯的声明,不会被分配内存空间。
  • Java语言中声明数组时不能指定其长度(数组中元素的数)
  • 建议使用数据类型[] 数组名;的声明风格声明数组变量,数据类型 数组名[];风格是来自 C/C++ 语言 ,在Java中采用是为了让 C/C++ 程序员能够快速理解java语言。

1.2 一维数组的静态初始化

在定义数组的同时就为数组元素分配空间并赋值。

语法格式:

数据类型[] 数组名 = {1,2,3};
或
数据类型[] 数组名 = new 数据类型[]{1,2,3};

注意:声明数组的同时给数组赋值,叫做数组的初始化,数组元素间用逗号隔开

1.3 一维数组的动态初始化

数组声明且为数组元素分配空间与赋值的操作分开进行。

语法格式:

数据类型[] 数组名 = new 数据类型[数组元素个数];
或
数据类型[] 数组名;
数组名 = new 数据类型[数组元素个数];

二、一维数组元素的引用

数组的引用即访问指定位置的数组元素,在Java中通过数组的索引(下标)实现。

语法格式:

数组名[数组元素下标];

注意:

  • 定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;
  • 数组元素下标可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];
  • 数组元素下标从0开始;
  • 长度为n的数组合法下标取值范围: 0 ~n-1;如int a[]=new int[3]; 可引用的数组元素为a[0]、a[1]、a[2];
  • 数组一旦初始化,其长度是不可变的;

三、一维数组获取数组长度

每个数组都有一个属性length指明它的长度(元素个数)。

语法格式:

数组名.length;

四、一维数组的遍历

遍历:访问数组的每一个元素。通过循环实现。

五、一维数组元素的默认初始化值

数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。

5.1 对于基本数据类型

默认初始化值各有不同,具体如下表:

数组元素类型元素默认初始值
byte0
short0
int0
long0L
float0.0F
double0.0
char0 或写为:’\u0000’(表现为空)
booleanfalse

总结:

  • 所有整型的初始值都是0(long型注意加上L);
  • 所有浮点型的初始值都是0.0(float注意加上f或F);
  • char类型的初始值不是’0’,不是空格,而是0;

5.2 对于引用数据类型

默认初始化值为null,表示空值(注意与0不一样)。

六、一维数组的内存解析

6.1 内存的简化结构

在这里插入图片描述
栈:存放局部变量;

堆:存放new出来的结构,如对象,数组;

6.2 一维数组的内存解析

方法中的变量被称为局部变量,因此数组名是存储在栈内存中;而数组又是引用数据类型,属于new出来的结构,则会被存放在堆内存中。

public class Test{
    public static void main(String args[]){
        int[] s;//单纯的声明,此时没有分配内存空间
        s = new int[10];//①
        //int[] s=new int[10];
        //基本数据类型数组在显式赋值之前,
        //Java会自动给他们赋默认值。
        for ( int i=0; i<10; i++ ) {
            s[i] =2*i+1;//②
            System.out.println(s[i]);
        }
    }
}

①时内存状态:

在这里插入图片描述

②时内存状态:

在这里插入图片描述

七、一维数组案例

7.1 一维数组使用示例

// 声明一个整型数组  
int[] intArray;  
//声明一个字符串类型的数组  
String strArray[];  
//创建数组  
intArray=new int[5];  
strArray=new String[10];  
//声明数组的同时进行创建  
float[] floatArray=new float[4];  
//初始化数组  
char[] ch={'a','b','c','d'};  
System.out.println("ch数组的长度为:"+ch.length);  
System.out.println("intArray数组的第2个元素为:"+intArray[1]);  
System.out.println("strArray数组的第5个元素为:"+strArray[4]);  
System.out.println("floatArray数组的最后一个元素"+floatArray[floatArray.length-1]);  
16.	//循环为整型数组赋值  
for(int i=0;i<5;i++){  
    intArray[i]=i+1;  
}  
//循环输出整型数组中的元素  
System.out.println("整型数组intArray的元素为:");  
for(int i=0;i<5;i++){ 
    System.out.print(intArray[i]+"     ");  
}  

7.2 求整型数组的累加和,使用foreach循环输出数组元素

//定义整型数组  
int[] a=new int[5];  
Scanner sc=new Scanner(System.in);  
//从键盘接收数据,为数组元素赋值  
for(int i=0;i<a.length;i++){  
    System.out.println("请输入第"+(i+1)+"个元素:");
    a[i]=sc.nextInt();  
}  
System.out.println("数组元素的内容为:");  
for(int i=0;i<a.length;i++){  
    System.out.print(a[i]+"     ");  
}  
System.out.println();  
System.out.println("使用增强型for循环输出数组内容:");
for(int n:a){  
    System.out.print(n+"    ");  
}  
//求数组元素的累加和  
int sum=0;  
for(int i=0;i<a.length;i++){  
    sum=sum+a[i];  
}  
System.out.println();  
System.out.println("数组元素的累加和为:"+sum);  

7.3 求数组元素的最大值

int[] a={34,23,78,56,31};  
int max=a[0];  
for(int i=1;i<a.length;i++){  
    if(max<a[i]){  
        max=a[i];  
    }  
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值