当前位置:文档之家› java数组的概念和作用

java数组的概念和作用

java数组的概念和作用
java数组的概念和作用

1 数组的概念

和其他语言一样,Java也提供数组支持,数组是属于引用类型,即数组是一个

对象。

强调数组的类型是引用类型。

数组的基本概念及作用

数组是相同数据类型元素的集合

数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,也可以存储引用数据类型。

数组的举例

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

String [] s = new String []{"小熊","小小熊","小小小熊"}; Employee [] e=new Employee[10];(Employee是自定义类)

2 数组的声明

数组的声明的两种方式:

数据类型 [] 数组名字例如:int [] a;

数据类型数组的名字 [] 例如: int a [];

注意:

在Java语言中两种声明方法没有任何区别,但是建议大家用第一种,避免混淆a的数据类型。

数组在声明后还只是一个空指针,不能使用,要想使用必须创建。

数组创建的三种方式:

?//声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认的初始化值

char[] chAry = new char[10];

?//声明数组并分配内存,同时将其初始化

?int[] ary1 = new int[]{1, 2, 3, 4, 5};

?//与前一种方式相同,仅仅只是语法相对简略

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

从另一个角度,数组创建可以分为动态和静态两种

动态创建数组(没有为元素赋值,可以结合for循环进行赋值)

char[] chAry = new char[10];

静态创建数组,在创建的时候,即为每个元素赋初值

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

数组的长度

数组的长度:length属性

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

System.out.println(b1.length);

注意:数组的长度是属性,String的长度是length();

创建数组的时候必须指定数组的长度,而且一经定义则不允许改变。

数组的长度虽然是7,但是在内存中实际给8个位置,另外一个存储7.

数组之间赋值

在C语言中,不可以将数组直接赋值给另一个数组;

在Java中,语法上允许这样做,但实际得到的效果是两个数组引用指向同一块内存。

int[] ary1 = {2, 4, 6, 8, 10};

int[] ary2;

ary2 = ary1; //允许这样赋值

数组赋值示例

public class ArrayDemo {

public static void main(String[] args) {

int[] ary1 = {2, 4, 6, 8, 10}; //声明并初始化数组1

int[] ary2; //声明数组2

ary2 = ary1; //将数组1赋值给数组2

ary2[3] = 1024; //通过数组2修改其中一个元素的值

//打印出数组1中的元素

System.out.println("数组1中的元素:");

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

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

}

//打印出数组2中的元素

System.out.println("数组2中的元素:"); for (int i = 0; i < ary2.length; i++) {

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

}

}

}

3 数组的访问

数组元素的访问:

数组名字[索引] 例如:a[2];

注意:

数组的索引从0开始。

索引的数据类型是整型

索引最大值和数组长度始终差1 数组的迭代

数组迭代的两种方式:

第一种:for循环

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

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

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

//数组的迭代

for(int i =0;i

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

}

第二种:增强for循环

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

//增强for循环

for(数组元素的类型临时变量名字:数组的名字){ System.out.println(临时变量名字 );

}

即:

for(int x:b1){

System.out.println(x);

}

注意:

两种方式的迭代都可以,第二种在企业项目开发中较为常用增强for循环是JDK5之后增加的新特性。

多维数组的定义

二维数组的定义:

多维数组即数组的数组,即数组的元素也是数组

例如:

int [][]a = {{1},{1,2},{1,2,3}};

二维数组的声明:

三种方式:

int [][] a;

int []a1[];

int a2[][];

注意:建议用第一种,不容易混淆a的数据类型

int [][] a = new int [2][];

a[0] = {1,2,3};

a[1] = {4,5,6};

多维数组的迭代:

int [][] b1 = new int [][]{{1,2},{3,4}};

for(int i =0;i

for(int j =0;j

System.out.print(b1[i][j]);

}

}

数组的拷贝

在JDK API的System类中,提供了一个数组拷贝的静态方法:

arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束

int[] a={10,100,1000};

int[] b={20,200,2000,20000};

System.arraycopy(a, 1, b, 2, 2);

for(int x:b){

System.out.println(x);

}

输出结果

20 200 100 1000

值传递的定义

值传递的本质是赋值,是把实际参数赋值给形式参数的过程

基本数据类型是值之间进行赋值

引用数据类型虚拟地址之间进行赋值

基本数据类型:传递的是值(value)的拷贝

package com.etc.chapter03;

public class TestPass {

public void add(int x){

x++;

System.out.println("add()方法:x="+x);

}

public static void main(String[] args) {

TestPass pass=new TestPass();

int x=100;

pass.add(x);

System.out.println("main()方法:x="+x); } }

用类型:传递的是引用(reference)

public class TestByReference {

public void test(PersonalAccount a){

a.deposit(2000);

System.out.println("test 方法中a的余额="+a.getBalance()); }

public static void main(String[] args) {

PersonalAccount a=new PersonalAccount("3333","123",1900); TestByReference t=new TestByReference();

t.test(a);

System.out.println("main 方法中a的余额="+a.getBalance()); }

}

基本数据类型在传递过程中形参改变实参不改变

引用类型在传递过程中形参改变实参也改变。

虽然String 、包装器类本身是引用数据类型,但是按基本数据类型的规则传递。

Java_数组练习题目

一填空题 1)数组的元素通过数组下标来访问,数组Array的长度为元素的个数 (Array.length)。 2)Java中数组的下标的数据类型是整形。 3)不用下标变量就可以访问数组的方法是数组名。 4)数组最小的下标是0 。 5)arraycopy()的最后一个参数指明复制元素的个数。 6)向方法传递数组参数时,传递的是数组的引用。 7)数组初始化包括数组的声明,创建,初始化。 8)数组下标访问超出索引范围时抛出数组越界异常 9)浮点型数组的默认值是0.0f 。 10)对象型数组的默认值是null 。 二选择题 1.下面错误的初始化语句是_A B D__ A. char str[]="hello"; B. char str[100]="hello"; C. char str[]={'h','e','l','l','o'}; D. char str[]={'hello'}; 2.定义了一维int型数组a[10]后,下面错误的引用是_B_ A. a[0]=1; B. a[10]=2; C. a[0]=5*2; D. a[1]=a[2]*a[0]; 3.下面的二维数组初始化语句中,正确的是__B__ A. float b[2][2]={0.1,0.2,0.3,0.4}; B. int a[][]={{1,2},{3,4}}; C. int a[2][]= {{1,2},{3,4}}; D. float a[2][2]={0}; 4.引用数组元素时,数组下标可以是__D__ A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均可 5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为__C__ A. 24 B. 25 C. 18 D. 17 6.下列初始化字符数组的语句中,正确的是_B___ A. char str[5]="hello"; B. char str[]={'h','e','l','l','o','\0'}; C. char str[5]={"hi"}; D. char str[100]=""; 7.数组在Java中储存在 C 中 A. 栈 B. 队列 C. 堆 D. 链表

java数组的概念和作用

1 数组的概念 和其他语言一样,Java也提供数组支持,数组是属于引用类型,即数组是一个 对象。 强调数组的类型是引用类型。 数组的基本概念及作用 数组是相同数据类型元素的集合 数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,也可以存储引用数据类型。 数组的举例 int [] a = new int []{1,2,3,4,5}; String [] s = new String []{"小熊","小小熊","小小小熊"}; Employee [] e=new Employee[10];(Employee是自定义类) 2 数组的声明 数组的声明的两种方式: 数据类型 [] 数组名字例如:int [] a; 数据类型数组的名字 [] 例如: int a []; 注意: 在Java语言中两种声明方法没有任何区别,但是建议大家用第一种,避免混淆a的数据类型。 数组在声明后还只是一个空指针,不能使用,要想使用必须创建。 数组创建的三种方式:

?//声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认的初始化值 char[] chAry = new char[10]; ?//声明数组并分配内存,同时将其初始化 ?int[] ary1 = new int[]{1, 2, 3, 4, 5}; ?//与前一种方式相同,仅仅只是语法相对简略 ?int[] ary2 = {1, 2, 3, 4, 5}; 从另一个角度,数组创建可以分为动态和静态两种 动态创建数组(没有为元素赋值,可以结合for循环进行赋值) char[] chAry = new char[10]; 静态创建数组,在创建的时候,即为每个元素赋初值 int[] ary1 = new int[]{1, 2, 3, 4, 5}; 数组的长度 数组的长度:length属性 int [] b1 = new int []{1,2,3,4,5,6,7}; System.out.println(b1.length); 注意:数组的长度是属性,String的长度是length(); 创建数组的时候必须指定数组的长度,而且一经定义则不允许改变。 数组的长度虽然是7,但是在内存中实际给8个位置,另外一个存储7. 数组之间赋值 在C语言中,不可以将数组直接赋值给另一个数组;

Java数组与方法

若想要存放一连串相同数据类型的数据,使用数组是个相当好用的选择。此外,如果某个程序片段经常反复出现,那么将它定义成一个方法可以有效地简化程序代码。本章主要是介绍数组的基本用法与方法的应用,学完本章,将会对数组与方法的使用有更深一层的认识。 数组是由一组相同类型的变量所组成的数据类型,它属于引用类型。它们以一个共同的名称表示,数组中的每个元素则以下标来访问。数组依照存放元素的复杂程度分为一维数组、二维和多维数组,先来看看一维数组。 3.1 一维数组 一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的。可以将它简单的理解为是相同数据类型的数据的集合。 3.1.1 一维数组的声明与内存的分配 要使用Java的数组,必须经过两个步骤: (1)声明数组 (2)给数组分配内存 这两个步骤的语法如下: 数据类型数组名[ ]; 或数据类型[ ] 数组名; // 声明一维数组 数组名= new 数据类型[个数]; // 给数组分配内存 数组的声明格式里,“数据类型”是声明数组每个元素的数据类型,常见的类型有整型、浮点型与字符型等,也可以是引用类型。“数组名”是用来统一这组相同数据类型的元素的名称,其命名规则和变量的相同,建议使用有意义的名称为数组命名。数组声明后,接下来便是要配置数组所需的内存,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,而“new”则是命令编译器根据括号里的个数,在内存中开辟一块内存供该数组使用。 需要注意的是,在Java中声明数组的时候,不能在[]中指定其长度。比如:int score[3]; // 错误 下面是关于一维数组的声明并分配内存给该数组的一个范例: int score[]; // 声明整型数组score score = new int[3]; // 为整型数组score分配内存空间,其元素个数为3 在上例中的第一行,当声明一个整型数组score时,score可视为数组类型的变量,此时这个变量并没有包含任何内容,编译器仅会分配一块内存给它,用来保存指向数组实体的地址,如图3-1所示。 图3-1 声明整型数组 声明之后,接着要做内存分配的操作,也就是上例中第二行语句。这一行会开辟3个可供保存整数的内存空间,并把此内存空间的参考地址赋给score变量。其内存分配的流程如图3-2所示。

java中数组的学习完整版一

1.知识点 一维数组:定义、初始化、使用(相关的算法,常用系统类的使用) 多维数组:定义、初始化、使用 增强for循环,break、continue控制语句的学习 2.讲解 什么是数组? 例子 //要求把一个班的一门课的成绩,加起来求平均值; import java.util.*; class Average{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); float avg=0; float sum=0; int count=1; while(count<=3){ sum=sum+sc.nextFloat(); count++; } avg=sum/(count-1); System.out.println("平均值是:"+avg); System.out.println("程序结束"); } } //新要求:我要在输出平均值的同时,也要将这门课的最高分,最低分,同时也要能看到这门的成绩 数组概念:一组能够存储相同数据类型值的变量的集合。 在java中我们本着一切是对象的原则,我们把数组在java中看成是对象,数组对象。数组是最基本的引用型数据类型。 一维数组的知识点 定义方法: 1、三步法 A、int[] arr;用来申明数组的引用,在栈中为arr开辟内存; B、arr = new int[5];这是为数组arr在堆中为数组元素开辟6个存储单元; C、把数组在堆中的起始位置给了arr这个引用变量 *一般我们的程序在运行时,我们为局部变量在栈中开辟内存,而为对象(对象属性)在堆中开辟内存。为对象方法在方法区开辟内存空间。为类的属性,在静态区开辟内存空间。 具体的内存图:

Java中数组的声明

Java中数组的声明 一维数组的声明: 在Java中,数组是独立的对象,有自身的方法,不是变量的集合。 数组的声明: 类型标识符数组名[ ] 或者类型标识符[] 数组名。 数组的长度是在创建的时候决定的。 数组的创建方法: 先声明后创建: int array[]; array = new int[10]; 在声明的同时创建: int array[] = new int[10]; 直接赋值: int array[]= new int[1,2,3,4]; 数组下标从0开始。 数组是引用类型,他的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士地初始化。如: public class Testpublic static void main(Stirng [] args)?? int [] a = new int [5]; ?? Date[] days=new Date[3]; ?? System.out.println(a[3]); ?? System.out.println(days[2]);} class Dateint year,month,day; Date(int year,int month,int day)?? this.year=year; ?? this.month=month; ?? this.day=day;} 结果将是:0????? null 数组的拷贝 最有效率的方法是使用https://www.doczj.com/doc/2814005827.html,ng.System类的静态方法: public static void arraycopy(object src,int srcPos,object dest, ???????????????? int destPos,int length) 可以用于数组src从第srcPos项元素开始的length个元素拷贝到目标数组从destPos项开始的length个位置。 如果源数据数目超过目标数组的边界,系统就会抛出异常。 二维数组 float[][] numthree;???????????? //定义一个float类型的2维数组 numthree=new float[5][5];?????? //为它分配5行5列的空间大小 numthree[0][0]=1.1f;??????????? //通过下标索引去访问???? 1行1列= 1.1 numthree[1][0]=1.2f;????????????????????????????????? // 2行1列=1.2 numthree[2][0]=1.3f;????????????????????????????????? // 3行1列=1.3 numthree[3][0]=1.4f;????????????????????????????????? // 4行1列=1.4

Java实验报告-数组及常用算法

学号 Java语言程序设计C 实验报告 实验2 数组及常用算法 学生姓名 专业、班级 指导教师 成绩 计算机与信息工程学院 年月日

一、实验目的 学习课程相关章节知识,通过上机练习,掌握以下知识: 1.掌握Java中对象和引用变量的概念 2.掌握Java数组的使用和本质 3.掌握数组相关常用算法(复制及排序方法) 二、实验内容 写一个方法,功能:定义一个一维的int 数组,长度为10,把从控制台输入整数赋值给数组,然后将它们按从小到大的顺序输出(使用冒泡排序)(知识点:数组遍历、数组元素访问) 三、实验思想 1.Java中对象和引用变量的概念 2.Java数组的使用和本质 3.数组相关常用算法(复制及排序方法) 四、实验结果 package sss; import java.util.Scanner; public class aaa { public static void main(String[] args) { // TODO自动生成的方法存根 Scanner input=new Scanner(System.in); System.out.println("排序之前的数组:"); int a[]=new int[10]; for(int b=0;ba[j+1]) { int temp=a[j+1]; a[j+1]=a[j]; a[j]=temp; } } } System.out.print("\n"); System.out.print("排序之后的数组:"); printArray(a); } public static void printArray(int[] arry) { 1

java中数组的定义及使用方法详解

java中数组的定义及使用方法详解 数组:是一组相关变量的集合 数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组 数据的有点 不使用数组定义100个整形变量:int i1;int i2;int i3 使用数组定义 int i[100]; 数组定义:int i[100];只是一个伪代码,只是表示含义的 一维数组 一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的,使用java数组,必须经过两个步骤,声明数组和分配内存给该数组,声明形式一 声明一维数组:数据类型数组名[]=null; 非配内存给数组:数组名=new 数据类型[长度]; 声明形式二 声明一维数组:数据类型 [] 数组名=null; java数据类型分为两大类 基本数据类型 int、long操作的时候本身就是具体的内容 引用数据类型:数组、类、接口 引用传递的就是一个内存的使用权,一块内存空间,可能有多个人同

时使用 事例声明数组 package com.qn.array; public class Test { public static void main(String[] args) { int score[]=null;//声明数组 score=new int[3];//开辟空间,大小为3 } } 数组的声明格式里,数据类型是数组元素的数据类型,常见的有整形、浮点型、与字符型等 数组名是用来统一这组相同数据类型元素的名称,其命名规则和变量的相同 数组声明后实际上是在栈内存中保存了此数组的名称,结下了是要在堆内存中配置数组所需要的内存,齐产固定是告诉编译器,所声明的数组要存放多少个元素,而new 则是命令编译器根据括号里的长度 基本数据类型偶读有其默认值:int 0;只要是引用数据类型默认值就是null 事例 package com.qn.array;

JAVA基础语法数组

JA V A基础语法_数组 一、选择题 1、以下能对二维数组a进行正确初始化的语句是 A)int a[2][] = { {1 , 0 , 1} , {5 , 2 , 3} }; B)int[][] a = { { 1, 2, 3 }, { 4, 5, 6 } }; C)int a[2][4] = { { 1 , 2 , 3 }, { 4 , 5 } , { 6 } }; D)int[] a = { { 1 , 0 , 1 } { } , { 1 , 1 } }; 答案:B 2、若有说明:int a[][]=new int[2][3];则数组a中各元素 A)可在程序的运行阶段得到初值0 B)可在程序的编译阶段得到初值0 C)不能得到确定的初值 D)可在程序的编译或运行阶段得到初值0 答案:A 3、下面创建二维数组正确的是 A)int[][] a = new int[][3]; B)int[][] a = new int[2][3]; C)int[] a[] = new int[2][]; D)int a[][] = new int[][2]; 答案:BC 4、若有说明: int a[] = { 1, 2, 3, 4, 5, 6, 7 }; 则获取a数组的大小是A)length B)length() C)getLen() D)size() 答案:A 5、执行下面的程序段后,变量k中的值为 int k = 3, s[] = new int[2]; s[0] = k; k = s[1] * 10; A)0 B)33 C)30 D)10 答案:A 6、下列四个选项中,正确的数组定义是______ A)int size = 2; int[] a = new int[size]; B)int 3a = new int[3]; C)long size = 2; int[] a = new int[size]; D)int[] $a= new int[3]; 答案:AD

Java数组练习题带答案

一填空题 1)数组的元素通过下标来访问,数组Array的长度为Array.length 。 2)数组复制时,"="将一个数组的引用传递给另一个数组。 3)JVM将数组存储在栈(堆或栈)中。 4)数组的二分查找法运用的前提条件是数组已经排序。 5)Java中数组的下标的数据类型是整型。 6)数组最小的下标是0 。 7)arraycopy()的最后一个参数指明复制元素的个数。 8)向方法传递数组参数时,传递的是数组的引用。 9)数组初始化包括数组的申明,创建和初始化。 10)数组下标访问超出索引范围时抛出数组越界异常 11)浮点型数组的默认值是0.0f 。 12)数组创建后其大小不能改变。 二选择题 1.下面错误的初始化语句是_ABD__ A. char str[]="hello"; B. char str[100]="hello"; C. char str[]={'h','e','l','l','o'}; D. char str[]={'hello'}; 2.定义了一维int型数组a[10]后,下面错误的引用是_B__ 3. A. a[0]=1; B. a[10]=2; C. a[0]=5*2; D. a[1]=a[2]*a[0]; 4.下面的二维数组初始化语句中,正确的是____ 5. A. float b[2][2]={0.1,0.2,0.3,0.4}; B. int a[][]={{1,2},{3,4}}; 6. C. int a[2][]= {{1,2},{3,4}}; D. float a[2][2]={0}; 7.引用数组元素时,数组下标可以是_D___ 8. A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均可 9.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____ A. 24 B. 25 C. 18 D. 17 10.下列初始化字符数组的语句中,正确的是__B__ 11.A. char str[5]="hello"; B. char str[]={'h','e','l','l','o','\0'}; 12.C. char str[5]={"hi"}; D. char str[100]=""; 13.数组在Java中储存在 C 中 14.A. 栈 B. 队列 C. 堆 D. 链表 15.下面程序的运行结果是____ main() { int a[][]={{1,2,3},{4,5,6}}; System.out.printf("%d", a[1][1]); } A. 3 B. 4 C. 5 D. 6 16.下面程序的运行结果是_C___ 17.main() {

java定义二维数组的几种写法

//定义二维数组写法1 class numthree { public static void main(String[] args) { float[][] numthree; //定义一个float类型的2维数组 numthree=new float[5][5]; //为它分配5行5列的空间大小 numthree[0][0]=1.1f; //通过下标索引去访问 1行1列=1.1 numthree[1][0]=1.2f; // 2行1列=1.2 numthree[2][0]=1.3f; // 3行1列=1.3 numthree[3][0]=1.4f; // 4行1列=1.4 numthree[4][0]=1.5f; // 5行1列=1.5 System.out.println(numthree[0][0]); //打印换行输出喽 System.out.println(numthree[1][0]); System.out.println(numthree[2][0]); System.out.println(numthree[3][0]); System.out.println(numthree[4][0]); } } //定义二维数组写法2 定义的同时分配空间大小 class numfour { public static void main(String[] args) { short[][] numfour=new short[5][8]; //定义一个short类型的数组同时为它分配5行8列的空间大小 numfour[0][7]=10; numfour[1][6]=20; numfour[2][5]=30; numfour[3][4]=40; numfour[4][3]=50; System.out.println(numfour[0][7]); System.out.println(numfour[1][6]); System.out.println(numfour[2][5]); System.out.println(numfour[3][4]); System.out.println(numfour[4][3]); } } //定义二维数组写法3 不规则数组 class numfive

Java数组练习题(带答案)教学提纲

J a v a数组练习题(带 答案)

1)数组的元素通过下标来访问,数组Array的长度为 Array.length 。 2)数组复制时,"="将一个数组的引用传递给另一个数组。 3)JVM将数组存储在栈 (堆或栈)中。 4)数组的二分查找法运用的前提条件是数组已经排序。 5)Java中数组的下标的数据类型是整型。 6)数组最小的下标是 0 。 7)arraycopy()的最后一个参数指明复制元素的个数。 8)向方法传递数组参数时,传递的是数组的引用。 9)数组初始化包括数组的申明,创建和初始化。 10)数组下标访问超出索引范围时抛出数组越界异常 11)浮点型数组的默认值是 0.0f 。 12)数组创建后其大小不能改变。 二选择题 1.下面错误的初始化语句是_ABD__ A. char str[]="hello"; B. char str[100]="hello"; C. char str[]={'h','e','l','l','o'}; D. char str[]={'hello'}; 2.定义了一维int型数组a[10]后,下面错误的引用是_B__ 3. A. a[0]=1; B. a[10]=2; C. a[0]=5*2; D. a[1]=a[2]*a[0]; 4.下面的二维数组初始化语句中,正确的是____ 5. A. float b[2][2]={0.1,0.2,0.3,0.4}; B. int a[][]={{1,2},{3,4}}; 6. C. int a[2][]= {{1,2},{3,4}}; D. float a[2][2]={0}; 7.引用数组元素时,数组下标可以是_D___ 8. A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均 可 9.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____ A. 24 B. 25 C. 18 D. 17 10.下列初始化字符数组的语句中,正确的是__B__ 11.A. char str[5]="hello"; B. char str[]={'h','e','l','l','o','\0'}; 12.C. char str[5]={"hi"}; D. char str[100]=""; 13.数组在Java中储存在 C 中 14.A. 栈 B. 队列 C. 堆D. 链表 15.下面程序的运行结果是____ main() { int a[][]={{1,2,3},{4,5,6}}; System.out.printf("%d", a[1][1]); } A. 3 B. 4 C. 5 D. 6 16.下面程序的运行结果是_C___

Java干货分享,数组的定义,初始化,数组的遍历

1.类型转换例子:double d = Double.parseDouble(放入需要转换的值); 2.//获取1970.1.1零时到此时此刻的毫秒数 long a = System.currentTimeMillis(); 3.int num=(int)(Math.random()*1000+1); //生成1到1000之内的随机数将字符串转成小写String str = "aGDa"; str = str.toLowerCase(); 4.将字符串转成大写toUpperCase() 5.字符串不区分大小写比较str.equalsIgnoreCase(anotherString) 6.区分大小写比较str.equals() 数组 7.数组的定义 int[] arr = new int[10]; 8.数组的初始化 int[] arr1 = new int[3]; //0,0,0 第一种方式 int[] arr2 = {1,4,7}; //1,4,7 第二种方式 int[] arr3 = new int[]{1,4,7}; //1,4,7 第三种方式 int[] arr; arr = {1,4,7}; //编译错误 arr = new int[]{1,4,7}; //正确 arr = new int[10]; //正确 9.数组的访问 a) 通过数组名.length获取数组的长度 int[] arr = new int[3];

System.out.println(arr.length);//3 b) 通过下标/索引来访问数组中的元素下标从0开始,最大到数组.length-1 int[] arr = new int[3]; arr[0] = 100; //给arr中的第一个元素赋值为100 arr[1] = 200; //给arr中的第二个元素赋值为200 arr[2] = 300; //给arr中的第三个元素赋值为300 arr[3] = 400; //异常(数组下标越界) System.out.println(arr[arr.length-1]);//输出数组中的最后一个元素 arr[arr.length-1] = 800; 10.数组的遍历 int[] arr = new int[3];//定义一个数组 for(int i=0;i=0;i--){//遍历数组中每个元素 System.out.println(arr[i]); } 11.数组的复制

Java_数组练习答案

填空题 1)数组的元素通过下标来访问,数组Array的长度为Array.length。 2)数组复制时,“=”将一个数组的引用传递给另一个数组。 3)没有显式引用变量的数组称为匿名数组。 4)JVM将数组存储在堆(堆或栈)中。 5)数组的二分查找法运用的前提条件是数组已经排序。 6)矩阵或表格一般用二维数组表示。 7)如果把二维数组看成一维数组,那么数组的元素是一维数组。 8)Java中数组的下标的数据类型是整型。 9)不用下标变量就可以访问数组的方法是f oreach循环。 10)数组最小的下标是0.。 11)array copy()的最后一个参数指明复制元素的个数。 12)向方法传递数组参数时,传递的是数组的引用。 13)线性查找法的平均查找长度为n*(n-1)/2。 14)数组初始化包括数组声明、创建和初始化。 15)数组下标访问超出索引范围时抛出arrayIndexOutOfBoundsException异常 16)浮点型数组的默认值是0.0f。 17)对象型数组的默认值是null。 18)对象类型的数组虽然被默认初始化,但是并没有调用其构造函数。 19)二维数组的行的长度可以不同。 20)数组创建后其大小不能改变。 选择题 1.下面错误的初始化语句是_D__ A) char str[]="hello"; B) char str[100]="hello"; C) char str[]={'h','e','l','l','o'}; D) char str[]={'hello'}; 2.定义了一维int型数组a[10]后,下面错误的引用是_B___ A) a[0]=1; B) a[10]=2; C) a[0]=5*2; D) a[1]=a[2]*a[0]; 3.下面的二维数组初始化语句中,错误的是__B___ A) float b[2][2]={0.1,0.2,0.3,0.4}; B) int a[][2]={{1,2},{3,4}}; C) int a[2][]= {{1,2},{3,4}}; D) float a[2][2]={0}; 4.引用数组元素时,数组下标可以是__D___ A) 整型常量B) 整型变量C) 整型表达式D) 以上均可 5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为__B___ A) 24 B) 25 C) 18 D) 17 6.下列初始化字符数组的语句中,错误的是__C___ A) char str[5]="hello"; B) char str[]={'h','e','l','l','o','\0'};

JAVA 数组

本章将接触Java语言中一个基本的部分:数组(Array)。数组是编程语言中一个很通用的概念,几乎所有的编程语言都支持数组。为了学习数组,先回顾一下前面学到的有关知识。 ●Java中的基本变量类型和变量; ●Java中的循环语句。 第3章中学习了Java基本数据类型以及如何创建一个变量。本章中接触的数组其实不比一个变量复杂多少。在学习基本数据类型与变量的过程中主要学习了变量的创建、赋值与运算。在本章中将学习如何通过数组处理多个变量,下面开始本章的内容。 5.1 什么是数组 本节中将通过一个记录学生成绩的小程序来引入数组的概念。首先我们先尝试不使用数组处理问题,然后再通过使用数组处理问题。通过对比将会发现数组是一种简单好用的定义一组变量的方式。 5.1.1 假设:如果需要逐个定义变量 本节中我们假设需要一个小程序,功能是记录全班的成绩。假设全班只有5个人,按照第3章中学习的知识,这个功能完全可以实现。 public class UseVariable { public static void main(String[] args) { int student1 = 55, student2 = 66, student3 = 77, student4 = 88, student5 = 99; } } 上面使用了第3章中介绍的连续定义变量的方法,轻松地完成了这个功能。当然这个程序没有任何输出,仅仅是定义了5个变量代表5个学生的成绩,并且在创建变量的时候就给变量赋了初值。虽然稍显啰嗦,但是还能接受。下面要给这个程序添加一个功能,让它能够找到并输出最好的成绩,这个应该也很简单嘛,信手拈来。 public class UseVariable { public static void main(String[] args) { // 创建5个int变量,保存5个学生的成绩 int student1 = 55, student2 = 66, student3 = 77, student4 = 88, student5 = 99;

Java数组操作的10大方法

Java数组操作的10大方法 分享到:更多12 2014-08-27 分类:JAVA、编程开发暂无人评论 本文是码农网原创翻译,转载请看清文末的转载要求,谢谢合作! 下面是精心整理的Java数组操作的10大方法,大部分代码都来自Stack Overflow。 0、定义一个Java数组 第一种是定义了一个数组,并且指定了数组的长度,我们这里称它为动态定义。 第二种和第三种在分配内存空间的同时还初始化了值。 1、打印Java数组中的元素

这里的重点是说明了Java中数组的引用和值得区别,第三行直接打印intArray,输出的是乱码,因为intArray仅仅是一个地址引用。第4行输出的则是真正的数组值,因为它经过了A rrays.toString()的转化。对Java初学者来说,引用和值仍需重视。 2、从Array中创建ArrayList 为什么要将Array转换成ArrayList呢?可能是因为ArrayList是动态链表,我们可以更方便地对ArrayList进行增删改,我们并不需要循环Array将每一个元素加入到ArrayList中,用以上的代码即可简单实现转换。 3、检查数组中是否包含某一个值 先使用Arrays.asList()将Array转换成List,这样就可以用动态链表的contains函数来判断元素是否包含在链表中。

4、连接两个数组 ArrayUtils是Apache提供的数组处理类库,其addAll方法可以很方便地将两个数组连接成一个数组。 5、声明一个数组内链 6、将数组中的元素以字符串的形式输出 同样利用StringUtils中的join方法,可以将数组中的元素以一个字符串的形式输出。 7、将Array转化成Set集合

Java中一维数组的创建

Java中一维数组的创建 一维数组的声明方式: type var[]; 或type[]var; 声明数组时不能指定其长度(数组中元素的个数), Java中使用关键字new创建数组对象,格式为: 数组名= new 数组元素的类型[数组元素的个数] 实例: TestNew.java: 程序代码: 1. public class TestNew 2. { 3. public static void main(String args[]){ 4. int[]s ; 5. int i ; 6. s = new int[5]; 7. for(i = 0 ; i 《5 ; i++){ 8. s[i]= i ; 9. } 10. for(i = 4 ; i 》= 0 ; i--){ 11. System.out.println(“” + s[i]); 12. } 13. } 14. } 初始化: 1.动态初始化:数组定义与为数组分配空间和赋值的操作分开进行; 2.静态初始化:在定义数字的同时就为数组元素分配空间并赋值; 3.默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化。 实例: TestD.java(动态): 程序代码: 15. public class TestD 16. { 17. public static void main(String args[]){ 18. int a[]; 19. a = new int[3]; 20. a[0]= 0 ; 21. a[1]= 1 ; 22. a[2]= 2 ; 23. Date days[]; 24. days = new Date[3];

Java数组与对象实验报告

实验六Java对象和数组 一实验目的 1.掌握Java中对象和引用变量的概念 2.掌握Java数组的使用和本质 3.掌握数组相关常用算法 二实验内容 1.类的定义和对象创建 定义类MyPoint用以包含属性x,y表示一个点的坐标。在类中编写main()方法,在其中声明两个MyPoint类型的对象start和end,分别创建对象并赋值给对象名start和end。将对象start的成员x和y分别赋值为10,将对象end的成员x和y分别赋值为20。 【程序代码】 package exp6; public class MyPoint { int x,y; public MyPoint( int x,int y){ this.x=x; this.y=y; } public static void main(String [] args){ MyPoint start; MyPoint end; start=new MyPoint(10,10); end=new MyPoint(20,20); } }

1.1输出两个对象的字符串表示。用两种方法实现 (1)System.out.println("Start MyPoint = x:"+start.x + "y"+ start.y); (2)通过改写toString()方法来实现,然后使用System.out.println(start); 【写出toString()方法的全部代码】 public String toString() { return"x="+x+" "+"Y="+y; } 1.2 在main()方法中增加代码,以完成下列操作: 声明一个新的MyPoint类型对象stray。将对象end的赋值给stray,随后输出end和stray 变量的成员x和y的值。将对象stray的成员x和y赋任意新值,输出end和stray的成员的值。将start对象的成员x和y赋予新的值(任意),再次输出start和end的成员值。分析程序输出结果,得出相应结论。 【程序代码和分析:填写增加部分的代码即可】 MyPoint start=new MyPoint(10,10); MyPoint end=new MyPoint(20,20); MyPoint stray; stray=end; System.out.println(end); System.out.println(stray); stray=end; stray.x=30; stray.y=30; System.out.println(end); System.out.println(stray); start.x=50; start.y=50;

相关主题
文本预览
相关文档 最新文档