数组的概念

在前面的定义变量中,只能定义一个。那么定义多个的时候,需要创建的空间不便利。

所以Java中数组便于定义多个变量,进行统一操作。

需求:

定义1000个变量,输出这1000变量的值

没有学过数组,只能使用下列方式实现

Int i1 = 1;

Int i2 = 2;………

System.out.println(i1);

System.out.println(i2);

学过数组后,可使用下列方式

int[] arr = {1,2,3,4.6………};

System.out.println(arr[0]);

数组的概念与好处

数组其实就是一类类型变量的集合,使用数组可以很好的解决相同类型的变量定义问题,还可以统一对数组中的元素进行统一操作

数组的初始化

动态初始化

  1. 定义并初始化数组

a) 数组类型[] 数组名 = new 数组类型[长度];


public class ArrayInit{


public static void main(String[] args){


//a) 数组类型[] 数组名 = new 数组类型[长度];


int[] arr1 = new int[3];//创建数组对象(实例化),并将实例地址赋值给arr1


System.out.println(arr1[0]);


arr1[0] = 123;//通过下标进行赋值操作


System.out.println(arr1[0]);


}


}

b) 数组类型 数组名[] = new 数组类型[长度];


public class ArrayInit{


public static void main(String[] args){


//a) 数组类型[] 数组名 = new 数组类型[长度];


//b) 数组类型 数组名[] = new 数组类型[长度];


int arr1[] = new int[3];


System.out.println(arr1[0]);


arr1[0] = 123;


System.out.println(arr1[0]);


}


}

数组使用时,一定要注意数组越界问题(使用不存在的数组下标造成的)

ArrayIndexOutOfBoundsException

使用数组时,需要定义再赋值,才能使用数组,否则会出现空指针异常的错误


public static void main(String[] args){

int[] arr1 = null;

//这里会出现空指针异常,

//原因是在堆中没有实例化数组对象,直接赋值null,也就是没有地址值

//导致arr1变量指向地址是null

arr1[0] = 321;

int[] arr2 = arr1;

arr2[0] = 123;

System.out.println(arr2[0]);//求arr2的值为多少

//结果是123

}

java.lang.NullPointerException

  1. 数组使用最多的操作是通过for循环进行遍历操作

    1. 读取

public class ArrayInit{


public static void main(String[] args){


int[] arr1 = new int[10];


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


//通过数组下标访问数组中的元素,


//数组下标根据循环中的i变量进行递增,


//就可以访问数组中的所有元素


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


}


System.out.println();


}


}

  1. 赋值

public class ArrayInit{


public static void main(String[] args){


int[] arr1 = new int[10];


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


//通过数组下标进行赋值操作


//数组下标根据循环中的i变量进行递增,


//就可以访问数组中的所有元素,进行赋值


arr1[i] = i;


//输出当前元素的值


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


}


System.out.println();


}


}

数组的数据引用

例子:


public static void main(String[] args){


int[] arr1 = new int[10];


arr1[0] = 321;


int[] arr2 = arr1;


arr2[0] = 123;


System.out.println(arr2[0]);//求arr2的值为多少


//结果是123


}

静态初始化

定义数组,并初始化数组元素

数据类型[] 数组名 = {元素数据1, 元素数据2, 元素数据3, 元素数据4,……};

例子:


public static void main(String[] args){

//定义了一个数组,并进行初始化操作

int[] arr = {1,2,3,4,5,6,6,7,4};

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

System.out.println(arr[i]);

}

}

数据类型 数组名[] = new 数据类型[]{元素数据1, 元素数据2, 元素数据3, 元素数据4,……}

例子:


public static void main(String[] args){

//定义了一个数组,并进行初始化操作

int[] arr = new int[] {1,2,3,4,5,6,6,7,4};

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

System.out.println(arr[i]);

}

}

以上两种方式,除了写法不同,使用上也有小区别

例子:

错误例子:


public static void main(String[] args){

//定义了一个数组,并进行初始化操作

// Object o = new Object()

// Onject o = null;

// new Object().toString();

int[] arr = {1,2,3,4,5,6,6,7,4};

System.out.println(arr.toString());

System.out.println(arr);

//上面两句是对象信息打印

//普通匿名对象可以直接在后面调用对象方法,

//但是int[] arr = {1,2,3,4,5,6,6,7,4};

//这行代码中地有右部分不行,会报语法错误

System.out.println({1,2,3,4,5,6,6,7,4}.length);

}

正确例子:


public static void main(String[] args){

//定义了一个数组,并进行初始化操作

// Object o = new Object()

// Onject o = null;

// new Object().toString();

int[] arr = {1,2,3,4,5,6,6,7,4};

System.out.println(arr.toString());

System.out.println(arr);

//上面两句是对象信息打印

//普通匿名对象可以直接在后面调用对象方法,

//但是int[] arr = {1,2,3,4,5,6,6,7,4};

//这行代码中地有右部分不行,会报语法错误

System.out.println(new int[]{1,2,3,4,5,6,6,7,4}.length);

}

二维数组的介绍与使用


//  一维数组可以理解为线,下标可看作是线上的点

//  二位数组可以看作平面,下标可以看作是x,y轴

//  三维数组可以看作是立方,下标可看作是x,y,z

public static void main(String[] args){

//定义二维数组

int[][] arrs = new int[10][20];

//设置二维数组中的值

arrs[0][2] = 11;

arrs[9][11] = 20;

//读取所有的数据

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

System.out.print(i+":[");

for(int j = 0 ; j < arrs[i].length ; j++){

String str = ""+(arrs[i][j]);

if(j!= ( arrs[i].length-1 ) ){// 当前循环次数不是最后一次,就进入并添加‘,‘,否则就进入

str += ",";

}

System.out.print(str);

}

System.out.println("]");

}

}

数组在方法中的使用

  1. 方法形参

public class ArrayMethod{

public static void main(String[] args){

//1.定义一个数组

String[] strs = new String[4];

setArrayValue(strs);

printArrayValue(strs);

}

////2.将数组批量赋值

public static void setArrayValue(String[] strs){

char c = ‘一‘;

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

strs[i] = ""+(char)(c + i);

}

}

////3.将数组打印

public static void printArrayValue(String[] strs){

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

System.out.println(strs[i]);

}

}

/**

public static void main(String[] args){

char c = ‘中‘;

System.out.println((int)c);

System.out.println(c+1);

System.out.println((char)(c+1));

}

**/

}

  1. 方法体内

public class ArrayMethodTwo{

public static void main(String[] args){

String[] strs = new String[4];

strs[2] = ""+9;

setArrayValue(strs);

System.out.println(strs[2]);

//此处打印应该是1,因为数组传递是引用传递,

//两个方法操作的是同一个数组对象,

//所以最后打印的是setArrayValue修改过户的值

}

public static void setArrayValue(String[] strs){

strs[2] = ""+1;

}

}

  1. 方法返回值

public class ArrayMethodTwo{

public static void main(String[] args){

String[] strs = new String[4];

strs[2] = ""+9;

String[] strs2 = setArrayValue(strs);

System.out.println(strs2[2]);

//此处打印应该是1,因为数组传递是引用传递,

//两个方法操作的是同一个数组对象,

//所以最后打印的是setArrayValue修改过户的值

System.out.println(strs);

System.out.println(strs2);

}

public static String[] setArrayValue(String[] strs){

strs[2] = ""+1;

return strs;

}

}

原文地址:https://www.cnblogs.com/gs520/p/9807574.html

时间: 2024-11-08 23:01:02

数组的概念的相关文章

数组基本概念

// //  main.c //  数组基本概念 // //  Created by micalafei on 15/8/18. //  Copyright (c) 2015年 micalafei. All rights reserved. // #include <stdio.h> int main(int argc, const char * argv[]) { //  数组的定义 //  当需要保存很多"相同类型"的数据时就可以使用数组来保持\ 用变量来保存的话会很复

08.18 javascript 06 数组 数组的概念 创建数组 读取数组中的元素 稀疏数组 添加和删除数组的元素 数组遍历 多维数组 数组的方法 类数组对象 作为数组的字符串

# 数组 ### 数组的概念 * 数组是值的有序集合 * 数组中的每个值 称之为 元素 * 每个元素可以是任意数据类型的值 * 每个元素都有索引(下标) * 元素的索引从0开始,按照顺序递增. 元素最大的索引 2^32-2 ### 创建数组 * 直接量 `[]` * 构造函方式  `new Array()` ### 读写数组中的元素 * 数组名[索引] ### 稀疏数组 * js数组的索引是连续的 * 没有连续的给元素赋值 , 没有赋值的元素会自动赋值 undefined ### 添加和删除 数

javascript-理解05?数组的概念及定义

数组的概念及定义 一组一般情况下相同类型的数据. 除了 Object 类型之外,Array 类型是ECMAScript 最常用的类型.而且 ECMAScript 中的  Array 类型和其他语言中的数组有着很大的区别. 虽然数组都是有序排列, 但 ECMAScript 中的数组每个元素可以保存任何类型.ECMAScript 中数组的大小也是可以调整的. 数组的创建方式(构造函数和JSON) 第一种是 new 运算符(构造函数); 第二种是字面量(JSON); 注意:给构造函数传递一个值也可以创

数组(随机生成一维数组),二维数组的概念和题目设计(利用二维数组 :任意给定分数去计算科目和人均平均分)

1 //数组间的关系arr[]中的数字为几,[]内就有几个数 2 //{ }内的数是从0开始,如需要打印应从0开数 3 如{2,6,9,8,7}打印arr[4]就是7 4 #include <stdio.h> 5 #include <stdlib.h> 6 int main() 7 { 8 int arr[] = { 1,2,3,4,8}; 9 10 printf("%d\n", arr[3]); 11 12 system("pause");

0129 JavaScript 数组:概念、创建数组、获取数组中的元素

1.1 数组的概念 数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式. 数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素.数组是一种将一组数据存储在单个变量名下的优雅方式. 1.2 创建数组 JS 中创建数组有两种方式: 利用 new 创建数组 var 数组名 = new Array() : var arr = new Array(); // 创建一个新的空数组 注意 Array () ,A 要大写 利用数组字面量创建数组 //1. 使用数组字面量方

Java中数组的概念与特点

数组概念: 数组其实也是一个容器,可以用来存储固定个数相同类型的数据数组的定义 数组中存储的数据叫做元素 特点: 1.数组是引用数据类型 2.数组的长度是固定的,也就是说可以存储固定个数的数据 3.数组中的元素的类型必须一致,也就是说数组中存储的多个数据的数据类型一致 注意: 数组有定长特性,长度一旦指定,不可更改. 和水杯道理相同,买了一个2升的水杯,总容量就是2升,不能多也不能少. 原文地址:https://www.cnblogs.com/libinhong/p/10988744.html

Java中数组的概念

1.什么是二维数组?有几种表达方式?分别是什么? 答:多维数组即数组的数组,即数组的元素也是数组. 例:int[] [] a = {{1},{1,2},{1,2,3}}; 有三种方式 1).int [] [] a;  2).int [] a1 [];  3).int a2 [] []; *强烈推荐用第1种,不容易混淆a的数据类型: 2.多维数组的创建过程是什么? 答: 例:int [] [] a = new int [2] []; a[0] = {1,2,3}; a[1] = {4,5,6};

【C/C++】数组的概念

在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组合起来.这些按序排列的同类数据元素的集合称为数组.在C语言中,数组属于构造数据类型.一个数组可以分解为多个数组元素,这些数组元素可以是基本的数据类型或是构造类型.因此按数组元素的类型不同,数组又可分为数值数组.字符数组.指针数组.结构数组等各种类别. 定义一个数组:int a [10]

关于ArrayBuffer和类型化数组的概念

对于局部变量的提升是这么一个过程,这个过程是函数作用域链创建过程中的一部分:函数在调用,但是其中代码还没有执行之前,首先会创建一个活动对象,然后搜寻这个函数中的局部变量定义和函数定义,将变量名和函数名都作为这个活动对象的同名属性.对于局部变量定义,变量的值会在真正执行到赋值语句时才会计算,此时只是简单的赋值为undefined. Bash作为一门编程语言,它通过变量来表示数据.Bash的变量在概念是和我们平时接触的其他编程语言类似,都是以字符表示的一些列名字标签,通过引用这些名字标签来使用变量所