首页 > hot资讯 > 全面解析一维数组

全面解析一维数组

更新时间:2020-10-20 17:53 浏览62次 来源:动力节点

数组(Array)是有序的元素序列。在程序中可以使用下标变量,即说明这些变量的整体为数组,数组中的每个变量的数据类型是相同的。当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。一维数组是数组里面最重要的基本组成部分,本文我们就一起来全面解析一下一维数组


1.一维数组声明方式

方式一

数据类型 数组名[] = null ; //声明一维数组

数组名 = new 数组类型[长度]; // 分配内存给数组

方式二

数据类型[] 数组名 = null ; //声明一维数组

数组名 = new 数组类型[长度]; // 分配内存给数组

简写方式

数据类型 数组名[] = new 数据类型[个数]; //声明数组的同时分配内存


2.一维数组中元素的表示方法

数组的声明以及简单输出

package com.shxt.demo01;

public class ArrayDemo01 {

public static void main(String[] args) {

int[] score = null; //声明数组,但是为开辟内存空间

score = new int[3]; //为数组开辟"堆内存"空间

System.out.println("score[0]="+score[0]); //分别输出数组的每个元素

System.out.println("score[1]="+score[1]); //分别输出数组的每个元素

System.out.println("score[2]="+score[2]); //分别输出数组的每个元素

// 使用循环依次输出数组中的全部内容

for (int i = 0; i < 3; i++) {

System.out.println("score["+i+"]="+score[i]);

}

}

}

对于数组的访问采用"数组名称[索引或者下标]"的方式,索引从0开始计数,假设程序中取出的内容超过了这个下标范围,例如:score[3]程序运行会存在以下的异常错误提示信息:

java.lang.ArrayIndexOutOfBoundsException:3

提示的内容为数组索引超出绑定的异常(经常说的数组越界异常),这个是未来你们初学者经常出现的问题,请引起重视.此外,我们发现以上的程序运行的结果的内容都是"0",这是因为声明的数组是整型数组.

默认初始化数据:数组元素相当于对象的成员变量,默认值跟成员的规则是一样的,重点记忆!

系统将按照如下规则分配初识值:

数组元素的类型是基本类型中的整数类型(byte,short,int和long),则数组元素的值为0

数组元素的类型是基本类型中的浮点类型(float,double),则数组元素的值为0.0

数组元素的类型是基本类型中的字符类型(char),则数组元素的值为'\u0000'(空格)

数组元素的类型是基本类型中的布尔类型(boolean),则数组元素的值为false

数组元素的类型是引用数据类型(类,接口和数组),则数组元素的值为null

为数组中的元素赋值并进行输出

声明整型数组,长度为5,通过for循环赋值1,3,5,7,9的数据

package com.shxt.demo01;

public class ArrayDemo02 {

public static void main(String[] args) {

int[] score = null; //声明数组,但是为开辟内存空间

score = new int[5]; //为数组开辟"堆内存"空间

for (int i = 0; i < 5; i++) {

score[i] = i*2+1;

}

for (int i = 0; i < 5; i++) {

System.out.println("score["+i+"]="+score[i]);

}

}

}

数组长度的取得

数组名称.length --> 返回一个int型的数据

package com.shxt.demo01;

public class ArrayDemo03 {

public static void main(String[] args) {

int[] score = new int[5];

System.out.println("数组长度为:"+score.length);

}

}


3. 一维数组的初始化方式

动态初始化

之前练习的就是使用的动态初始化方式

package com.shxt.demo01;

public class ArrayDemo04 {

public static void main(String[] args) {

int[] score = null; //声明数组,但是为开辟内存空间

score = new int[3]; //为数组开辟"堆内存"空间

score[0] = 100;

score[1] = 200;

score[2] = 300;

}

}

静态初始化

数据类型[] 数组名={初始值0,初始值1,...,初始值N}

或者

数据类型[] 数组名 = new 数据类型[]{初始值0,初始值1,...,初始值N}

package com.shxt.demo01;

public class ArrayDemo04 {

public static void main(String[] args) {

int[] score = {10,20,30,40,50};

for (int i = 0; i < score.length; i++) {

System.out.println("score["+i+"]="+score[i]);

}

}

}


4一维数组一定要初始化吗

在之前我们说在使用Java数组之前必须要先初始化数组(即在使用数组之前,必须先创建数组).实际上,如果真正掌握了Java数组中的分配机制,那么可以完全换一个方式来初始化数组.

始终记住:Java的数组变量只是引用类型的变量,它并不是数组对象本身,只是让数组变量指向有效的数组对象,程序中即可使用该数组变量

package com.shxt.demo01;

public class ArrayDemo08 {

public static void main(String[] args) {

// 静态初始化:定义并且初始化nums数组

int nums[] = {13,34,57,100};

// 定义一个scores数组变量

int[] scores;

//让scores数组执行nums所引用的数组

scores = nums ;

// 对scores进行变量

System.out.print("scores数组数据:");

for (int i = 0; i < scores.length; i++) {

System.out.print(scores[i]+"\t");

}

// 将scores数组中第3个元素赋值为200

scores[2] = 200;

// 访问 nums 数组的第3个元素,将看到输出值为200

System.out.println("\nnums 数组的第3个元素,将看到输出值为:"+nums[2]);

}

}

既然数组内容可以进行引用传递,那么就可以把数组作为方法中的参数,而如果一个方法想接收参数,则对应的参数类型必须是数组

使用方法接收数组

package com.shxt.demo01;

public class ArrayDemo09 {

public static void main(String[] args) {

// 静态初始化:定义并且初始化nums数组

int nums[] = {13,34,57,100};

// 引用传递, int[] temp = nums

print(nums);

}

public static void print(int[] temp){

for (int i = 0; i < temp.length; i++) {

System.out.print(temp[i]+"\t");

}

}

}

使用方法修改数组的内容

package com.shxt.demo01;

public class ArrayDemo10 {

public static void main(String[] args) {

// 静态初始化:定义并且初始化nums数组

int nums[] = {1,2,3,4,5};

// 引用传递, int[] temp = nums

inc(nums); //扩容操作

print(nums); //打印内容

}

public static void inc(int[] temp){

for (int i = 0; i < temp.length; i++) {

temp[i]*=2;

}

}

public static void print(int[] temp){

for (int i = 0; i < temp.length; i++) {

System.out.print(temp[i]+"\t");

}

}

}


一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组。一维数组是计算机程序中最基本的数组。二维及多维数组可以看作是一维数组的多次叠加产生的。想要学习数组,一维数组是学习二维及多维数组的基础,本站的Java基础教程里面有最新的教程可供参考学习,为众多Java初学者排忧解难。



热门课程推荐

全部班型支持免费试学

动力节点在线报名表(此信息已加密,请放心填写)

返回顶部