java 数组

java数组

 

概述

一维数组初始化

一维数组的引用

多维数组的初始化

多维数组的引用

 

一.概述

1.数组是最简单的复合数据类型,是有序数据的集合,其中的每个元素具有相同的数组类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。

2.有一维和多维数组。

3.自动编号从0开始,数组的元素可以使引用类型和基本类型。

 

二.一维数组初始化

1.arraryName[index]

·index下标,通常整型常熟or表达式,从0开始。

·length指明数组长度(arr.length

·数组的长度不是在声明时指定,而是在创建时由所开辟的内存单元数目确定。

2.内存分析

申明的时候没有分配元素的存储空间。

·栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放。

·堆内存:数组和对象,通过new建立的实例都存放在堆内存中。每个试题都有内存地址值。实体中的变量都有默认初始化值。实体不在被使用,会在不确定的时间内被垃圾回收器回收。

3.创建方法

A.先声明后创建

Int intArray[];

intArray = new int[10];

B.在声明的同时创建

Int intArray[] = new int[10];

C.直接赋值

Int[] intArray = {1,2,3,4,5};

 

三.一维数组的引用

1.测定长度

2.活用下标

3.查找问题

以数组的形式组织和存放数据的数据结构被称为顺序表

A.顺序查找:费时,效率低。

B.二分查找:在有序表中。

4.数组间相互赋值

JAVA允许类型相同,而长度不同的两个数组互相赋值。赋值的结果是两个数组名指向同一数组。

5.向成员方法传递数组元素(单向值传递)

6.向成员方法传递数组(双向地址传递)

7.同类型不同长度的数组引用同一个成员方法(两组不同长度的数据取平均。)

8.数组元素排序(只讨论简单的两种)

A.冒泡排序:相邻元素比较,然后判断是否交换位置,两个for循环。

B.选择排序:每次找出最小的,直接交换。

9.对象数组:当数组元素为对象时,使用之前必须对数组元素进行创建和初始化。(eg一个班级的各个学生的名字、年龄、性别...

//【示例程序c6_10.java】  设有若干名学生,每个学生有姓名、性别和成绩三个属性,要求将每个学生作为一个对象,建立获取对象名字的成员方法getName和获取对象性别的成员方法getSex,以及输出对象的全部数据成员的成员方法studPrint。

 

 

package ch123;

 

class Student

{

private String name;

private char sex;

private double score;

Student(String cname,char csex,double cscore){

name = cname;

sex = csex;

score = cscore;

}

String getName(){return name;}

char getSex(){return sex;}

void studPrint(){

System.out.println("Name:"+name+"\tSex:"+sex+"\tScore:"+score);

}

}

 

public class asf123 {

public static void main(String args[]){

String mname;

char msex;

int len;

Student[] stu = new Student[3];

stu[0] = new Student("Wong",'F',99);

stu[1] = new Student("Chen",'F',90);

stu[2] = new Student("Qian",'F',93);

len = 3;

for(int i=0; i

stu[i].studPrint();

}

mname = stu[2].getName();

msex = stu[2].getSex();

System.out.println("Name 2:"+mname+"\tSex:"+msex);

}

}

 

 

四.二维数组的初始化

1.声明

类型说明符 数组名[][]

类型说明符[][] 数组名;

2.初始化

类型说明符 数组名[][] = new类型说明符[数组长度][]

类型说明符[][] 数组名= new类型说明符[数组长度][数组长度]

PS:必须指定行数,列数随意。

3.赋值

int[ ][ ] arr1={{3, -9,6},{8,0,1},{11,9,8} };

int[ ][ ] arr1={{3, -9},{8,0,1},{10,11,9,8} };

PS:两个都是合法的,赋值时各子数组元素的个数可以不同。

 

五.二维数组的引用

1.测定数组的长度及测定数组赋值

“数组名.length”返回的是数组的行数。

“数组名[i].length”返回的是该i行的列数。

2.数组名作为成员方法的参数

  Eg.二位数组find out the max

 

 


你可能感兴趣的:(JAVA)