文档库 最新最全的文档下载
当前位置:文档库 › java中数组的学习完整版二

java中数组的学习完整版二

java中数组的学习完整版二
java中数组的学习完整版二

1.知识点

A.数组的复制

B.经典算法

a)冒泡排序

b)选择排序

c)插入排序

C.System类

D.Arrays类

2.讲解

数组的复制:就是指从一个已知的数组中获取部分或全部的值,放入另外一个数组中。

方法一、

采用循环的办法来做

Eg1:

class ArrayCopy{

public static void main(String[] args){

System.out.println("程序开始");

int[] arrSrc={1,2,3,6,7,9};

int[] arrDest=new int[arrSrc.length*2];

System.out.println("目地数组原来的值的情况:");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n");

for(int i=0;i

arrDest[i]=arrSrc[i];

}

System.out.println("目地数组现在的值的情况:");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n");

System.out.println("程序结束");

}

}

Eg2: class ArrayCopy1{

public static void main(String[] args){

System.out.println("程序开始");

int[] arrSrc={1,2,3,6,7,9};

int[] arrDest=new int[arrSrc.length*2];

System.out.println("目地数组原来的值的情况:");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n");

for(int i=0,j=2;i

arrDest[j]=arrSrc[i];

}

System.out.println("目地数组现在的值的情况:");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n");

System.out.println("程序结束");

}

}

Eg3:

import java.util.Scanner;

class ArrayCopy2{

public static void main(String[] args){

System.out.println("程序开始");

int[] arrSrc={1,2,3,6,7,9};

int[] arrDest=new int[arrSrc.length*2];

int posSrc=0;

int posDest=0;

Scanner sc=new Scanner(System.in);

System.out.println("请输入要复制的起始位置:");

posSrc=sc.nextInt();//这里要进行异常捕获,在这里暂时不写了

System.out.println("请输入目的数组的起始位置:");

posDest=sc.nextInt();

System.out.println("目地数组原来的值的情况:");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n");

//开始复制

if((arrSrc.length-posSrc)<(arrDest.length-posDest)){

System.out.println("复制开始:...");

for(int i=posSrc,j=posDest;i

arrDest[j]=arrSrc[i];

}

System.out.println("目地数组现在的值的情况:");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n");

}else{

System.out.println("复制失败...");

}

System.out.println("程序结束");

}

}

Eg4:

import java.util.Scanner;

class ArrayCopy3{

public static void main(String[] args){

System.out.println("程序开始");

int[] arrSrc={1,2,3,6,7,9};

int[] arrDest=new int[arrSrc.length*2];

int posSrc=0;

int posDest=0;

int copyLength=0;

Scanner sc=new Scanner(System.in);

System.out.println("请输入要复制的起始位置:");

posSrc=sc.nextInt();//这里要进行异常捕获,在这里暂时不写了

System.out.println("请输入目的数组的起始位置:");

posDest=sc.nextInt();//这里要进行异常捕获,在这里暂时不写了

System.out.println("请输入数组要复制的长度:");

copyLength=sc.nextInt();//这里要进行异常捕获,在这里暂时不写了

System.out.println("目地数组原来的值的情况:");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n");

//开始复制

if(copyLength<(arrSrc.length-posSrc)&©Length<(arrDest.length-posDest)){ System.out.println("复制开始:...");

for(int i=posSrc,j=posDest;i<=copyLength;i++,j++){

arrDest[j]=arrSrc[i];

}

System.out.println("目地数组现在的值的情况:");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n");

}else{

System.out.println("复制失败...");

}

System.out.println("程序结束");

}

}

Eg5:

import java.util.Scanner;

class ArrayCopy4{

public static void main(String[] args){

System.out.println("程序开始");

int[] arrSrc={1,2,3,6,7,9};

int[] arrDest=new int[arrSrc.length*2];

int posSrc=0;

int posDest=0;

int copyLength=0;

Scanner sc=new Scanner(System.in);

System.out.println("请输入要复制的起始位置:");

posSrc=sc.nextInt();//这里要进行异常捕获,在这里暂时不写了

System.out.println("请输入目的数组的起始位置:");

posDest=sc.nextInt();//这里要进行异常捕获,在这里暂时不写了

System.out.println("请输入数组要复制的长度:");

copyLength=sc.nextInt();//这里要进行异常捕获,在这里暂时不写了

System.out.println("目地数组原来的值的情况:");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n");

//开始复制

if(arrayCopy(arrSrc,posSrc,arrDest,posDest,copyLength)){

System.out.println("目地数组现在的值的情况:");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n");

}

System.out.println("程序结束");

}

public static boolean arrayCopy(int arraySrc[],int posSrc,int arrayDest[],int posDest,int copyLength){

boolean flag=false;

if(copyLength<=(arraySrc.length-posSrc)&©Length<=(arrayDest.length-posDest)){ System.out.println("复制开始:...");

for(int i=posSrc,j=posDest;i<=copyLength;i++,j++){

arrayDest[j]=arraySrc[i];

}

flag=true;

}else{

System.out.println("复制失败...");

}

return flag;

}

}

方法二、

采用系统提供的类来做(System

public static void arraycopy(Object src,

int srcPos,

Object dest,

int destPos,

int length)

eg:

class ArrayCopy5{

public static void main(String[] args)

{

System.out.println("程序开始");

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

int[] arrDest=new int[arrSrc.length*2];

try{

System.arraycopy(arrSrc,2,arrDest,8,arrSrc.length-2);

for(int i=0;i

System.out.print( arrDest[i]+" ");

}

//运行有问题,因为越界了

}catch(IndexOutOfBoundsException e0){

e0.printStackTrace();

}

catch(ArrayStoreException e1){

e1.printStackTrace();

}

catch(NullPointerException e2){

e2.printStackTrace();

}

System.out.println("");

System.out.println("程序结束");

}

}

经典算法

冒泡排序

原理

Eg:

class SortBubbled{

public static void main(String[] args){

System.out.println("程序开始");

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

//数组的原样输出

System.out.println("排序前的数组:");

for(int i=0;i

System.out.print(arr[i]+" ");

}

System.out.println();

//排序开始

for(int ciShu=0;ciShu

for(int j=0;j

if(arr[j]>arr[j+1]){

int tmp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=tmp;

}

}

}

//数组的排序后输出

System.out.println("排序后的结果:");

for(int i=0;i

System.out.print(arr[i]+" ");

}

System.out.println();

System.out.println("程序结束");

}

}

选择排序

原理

Eg:

class SortSelected{

public static void main(String[] args){

System.out.println("程序开始");

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

//数组的原样输出

System.out.println("排序前的数组:");

for(int i=0;i

System.out.print(arr[i]+" ");

}

System.out.println();

//排序开始

for(int ciShu=0;ciShu

for(int i=0;i

if(arr[arr.length-1-ciShu]

int tmp=arr[i];

arr[i]=arr[arr.length-1-ciShu];

arr[arr.length-1-ciShu]=tmp;

}

}

}

//排序结束,结果输出

System.out.println("排序后的结果:");

for(int i=0;i

System.out.print(arr[i]+" ");

}

System.out.println();

System.out.println("程序结束");

}

}

插入排序:思路是在一个已排序的数组上根据插入数据的大小找到合适的位置来放置插入的值。

原理

Eg:

class SortInserted{

public static void main(String[] args){

System.out.println("程序开始");

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

//数组的原样输出

System.out.println("排序前的数组:");

for(int i=0;i

System.out.print(arr[i]+" ");

}

System.out.println();

//排序开始

for(int numInserted=1;numInserted

if(arr[i]>arr[numInserted]){//比较开始

int tmp=arr[i];

arr[i]=arr[numInserted];

arr[numInserted]=tmp;

}

}

}

//排序结束,结果输出

System.out.println("排序后的结果:");

for(int i=0;i

System.out.print(arr[i]+" ");

}

System.out.println();

System.out.println("程序结束");

}

}

排序也可以用系统的类(java.util.Arrays)

排序:void sort

import java.util.Arrays;//一个类如果不是你自己写的或者是你自己写的但不在同一个包中,要使用它就必须到如此包。否则会出错

class UsageArrays{

public static void main(String[] args){

System.out.println("程序开始");

int

count=(int)Math.round(Math.random()*100)>4?(int)Math.round(Math.random()*100):( int)Math.round(Math.random()*100)+4;

int[] arr=new int[count];

for(int i=0;i

arr[i]=(int)Math.round(Math.random()*100);

}

System.out.println("待排序的数组有"+count+"个元素");

//数组的原样输出

System.out.println("排序前的数组:");

for(int i=0;i

System.out.print(arr[i]+" ");

}

System.out.println();

//排序开始

//Arrays.sort(arr);

Arrays.sort(arr,0,4);

//排序结束,结果输出

System.out.println("排序后的结果:");

for(int i=0;i

System.out.print(arr[i]+" ");

}

System.out.println();

System.out.println("程序结束");

}

}

查找:int binarySearch

import java.util.Arrays;

class UsageArrays1{

public static void main(String[] args){

System.out.println("程序开始");

int

count=(int)Math.round(Math.random()*100)>4?(int)Math.round(Math.random()*10

0):(int)Math.round(Math.random()*100)+4;

int[] arr=new int[count];

int index=-1;

int key=(int)Math.round(Math.random()*100);

for(int i=0;i

arr[i]=(int)Math.round(Math.random()*100);

}

System.out.println("待查找的数组有"+count+"个元素");

//数组的原样输出

Arrays.sort(arr);//为了使用Arrays.binarySearch()这个方法

System.out.println("数组:");

for(int i=0;i

System.out.print(arr[i]+" ");

}

System.out.println();

//查找指定的值

System.out.println("需要查找的值是:"+key);

index=Arrays.binarySearch(arr,key);

if(index>=0){

System.out.println("找到了,在"+(index+1)+"位置找到了"+key);

}else{

System.out.println("抱歉,没有找到,"+key+"这个数值"+"index现在的值:"+(index+1));

}

System.out.println("程序结束");

}

}

填充:void fill

import java.util.Arrays;

class UsageArrays2{

public static void main(String[] args){

System.out.println("程序开始");

int[] arr=new int[10];

arr[0]=1;

arr[5]=9;

System.out.println("填充前数组的值:");

for(int i=0;i

System.out.print(arr[i]+" ");

}

System.out.print("\n ");

System.out.println("填充开始:");

Arrays.fill(arr,5);

System.out.println("填充后数组的值:");

for(int i=0;i

System.out.print(arr[i]+" ");

}

System.out.print("\n ");

System.out.println("程序结束");

}

}

复制:type(float int short byte double char) copyOf

import java.util.Arrays;

class UsageArrays3{

public static void main(String[] args){

System.out.println("程序开始");

int[] arrSrc={1,2,3,4,5,6,7,8,9};

// int[] arrDest=new int[arrSrc.length*2];

int[] arrDest;

System.out.println("复制前数组的值:(arrSrc)");

for(int i=0;i

System.out.print(arrSrc[i]+" ");

}

System.out.print("\n ");

/*

System.out.println("复制前数组的值:(arrDest)");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n ");

*/

System.out.println("第一次复制开始

Arrays.copyOf():");

arrDest=Arrays.copyOf(arrSrc,5);

System.out.println("第一次复制后数组的

值:(arrDest)");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n ");

System.out.println("第二次复制开始

Arrays.copyOfRange():");

arrDest=Arrays.copyOfRange(arrSrc,0,arrSrc.length);

System.out.println("第二次复制后数组的

值:(arrDest)");

for(int i=0;i

System.out.print(arrDest[i]+" ");

}

System.out.print("\n ");

System.out.println("程序结束");

}

}

是否相等:boolean equals

import java.util.Arrays;

class UsageArrays4{

public static void main(String[] args){

System.out.println("程序开始");

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

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

if(Arrays.equals(arrSrc,arrDest)){

System.out.println("两个数组相等");

}else{

System.out.println("两个数组不相等");

}

System.out.println(Arrays.toString(arrSrc));

System.out.println("程序结束");

}

}

提高内容

Array.sort(Object[] arr)

Array.sort(T[],Comparato c);

import java.util.Arrays;

import https://www.wendangku.net/doc/2717498483.html,parator;

class Person implements Comparator,Comparable{

//属性的申明

private String name;

private int age;

//构造方法

public Person(){}

public Person(String name ,int age){

this.setName(name);

this.setAge(age);

}

//基本属性方法

public void setName(String name){

https://www.wendangku.net/doc/2717498483.html,=name;

}

public void setAge(int age){

if(age>0&&age<150){

this.age=age;

}else{

this.age=0;

}

}

public String getName(){

return https://www.wendangku.net/doc/2717498483.html,;

}

public int getAge(){

return this.age;

}

//覆盖父类方法

public String toString(){

return this.getName()+":"+this.getAge();

}

//比较器一,实现接口:Comparable

public int compareTo(Person obj){

if(this.getName().equals(obj.getName())){

//return 0;

if(this.getAge()==obj.getAge()){

return 0;

}else if(this.getAge()>obj.getAge()){

return 1;

}else{

return -1;

}

}else{

if(this.getName().compareTo(obj.getName())>0){

return 1;

}else{

return -1;

}

}

}

//比较器二,实现接口:Comparator

public int compare(Person obj1,Person obj2){

if((obj1.getName().compareTo(obj2.getName()))==0){

if(obj1.getAge()==obj2.getAge()){

return 0;

}else if(obj1.getAge()>obj2.getAge()){

return 1;

}else{

return -1;

}

}else if(obj1.getName().compareTo(obj2.getName())>0){

return 1;

}else{

return -1;

}

}

}

public class UsageArrays5{

public static void main(String[] args){

System.out.println("程序开始");

Person[] arrSrc={new Person("张三",19),new Person("王二麻子",20),new Person("李四",19),new Person("张三",18)};

//输出原样的数组

System.out.println("输出结果,输出原样的数组");

for(int i=0;i

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

}

//开始排序,不带比较器的排序

Arrays.sort(arrSrc);//原始的sort方法

//输出结果,不带比较器的排序

System.out.println("输出结果,不带比较器的排序");

for(int i=0;i

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

}

//开始排序,带比较器的排序

Arrays.sort(arrSrc,new Person());//利用带特殊比较器的sort方法,可以适用于后面我们要学的集合的排序

//输出结果,带比较器的排序

System.out.println("输出结果,带比较器的排序");

for(int i=0;i

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

}

System.out.println("程序结束");

}

}

3.作业

联系书上113页习题

4.预习

第五章的内容

java中的数组和字符串

Java中的数组和字符串 一.数组:用一个标识符(变量名)和一组下标来代表一组相同数据类型的数据元素的集合.其中的每个数组元素在数组中的位置是固定的.可以通过叫做下标的编号加以区分,通过标识符和下标来访问每一个数据元素. 数组必须经过声明和初始化后,才可以使用. 1、数组的声明(确定数组名、数组的维数和数组的数据数据类型)但并没有分配存储空间 一维数组的声明格式如下: 类型标识符数组名[]; 或类型标识符[] 数组名; int x[]; //可读性强 int[] x;常用于作为方法的返回值 public int[] fun() { } 二维数组的声明格式如下: 类型标识符数组名[][]; 或类型标识符[][] 数组名; int x[][]; int[][] x; 类型说明符指明数组元素的类型,可以是基本类型、类或接口;方括号表示数组的维数. 注意:对于二维数组,前面的[]表示行,后面的[]表示列. 2、数组的初始化 声明数组并不能够为数组分配存储空间.要想使数组分配存储空间必须指定数组元素的个数. java有两种方式进行初始化: 1)通过指定初值的方式: 例如: int[] a={12,33,77,88}; int[][] a={{1,2,3},{4,5,6},{7,8,9}}; 2)用关键字new初始化数组: 用关键字new初始化数组时候,只为数组分配存储空间而不对数组元素赋初值. 用关键字初始化数组也有两种形式: (1)先声明数组,再初始化数组 一维:类型标识符数组名[]; 数组名=new 类型标识符[数组长度]; 二维:类型标识符数组名[][]; 数组名=new 类型标识符[数组长度][];//必须指定行的长度.跟c语言不同. 注意:对于二维数组来说,可以不指定列,但必须指定行数. 或 数组名=new 类型标识符[数组长度][数组长度];//数组长度是整型但不能是长整型 (2)声明并初始化 一维:类型标识符数组名[]=new 类型标识符[数组长度]; 二维:类型标识符数组名[][]=new 类型标识符[数组长度][];//如果没有给数组赋值的话,系统自动赋予默认值. (也就是说声明和初始化写在同一行) 3、数组的引用 一维数组的引用格式如下: 数组名[数组下标];

Java数组与Java基础类实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验名称:数组与Java基础类 专业名称:计算机科学与技术 班级:计科1405班 学生姓名:高宏伟 学号:04141152 指导教师:刘霞林 实验日期:2016.10.27

一、实验目的 掌握Java中的数组定义、引用,掌握String类和StringBuffer类的使用。 二、实验要求 1.编写一个使用Java 数组的的程序。 2.编写一个使用String类的程序。 3.编写一个使用StringBuffer类的程序。 三、实验内容 (一) 使用数组求Fibonacci数列前10项之和 1.编写程序。 public class Fibonacci { public static void main(String args[]){ int i=0,j=1,s=0; for(int n=1;n<=5;n++){ s+=(i+j); i = (int)(i+j); j = (int)(i+j); } System.out.print("前10项之和是:"+s); } } 2.编译并运行程序。 (二)练习String类的常用方法 ?实验要求: 编写一个Java应用程序,判断两个字符串是否相同,判断字符串的前缀、后缀是否和某个字符串相同,按字典顺序比较两个字符串的大小关系,检索字符串,创 建字符串,将数字型字符串转换为数字,将字符串存放到数组中,用字符数组创建 字符串。。 ?程序模板: StringExample.java class StringExample { public static void main(String args[]) { String s1=new String("you are a student"),s2=new String("how are you"); if(【代码1】) // 使用equals方法判断s1与s2是否相同 { System.out.println("s1与s2相同"); }

JAVA类与对象及数组习题及答案

JAV A类和对象及数组习题 一、选择题 (1)下列构造方法的调用方式中,正确的是(D )--原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。 A.按照一般方法调用B.由用户直接调用 C.只能通过new自动调用D.被系统调用 (2)在Java中,能实现多重继承效果的方式是(C )--原因:一个类可以同时实现多个接口。Java接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。 A.内部类B.适配器C.接口D.同步 (3)int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java中定义常量用关键字final来定义。 A.public int MAX_LENGTH=100 B.final int MAX_LENGTH=100 C.public const int MAX_LENGTH=100 D.public final int MAX_LENGTH=100 (4)下列叙述中,正确的是( A )—原因:Java严格区分大小写,所以变量number 与Number不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*-------*/”和文档注释/**-------*/。Java源文件中的public类只能有一个。 A. 声明变量时必须指定一个类型 B. Java认为变量number与Number相同 C. Java中唯一的注释方式是"//" D. 源文件中public类可以有0或多个 (5)下列叙述中,错误的是( D )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。所以可以认为子类是父类的扩展。

Java类 类型的数组创建与使用方法

Java类数组的使用方法一 注意一定要把类数组的每一个元素都赋值,否则就报错,既对类数组对象的一空声明,如果并没有实例化,会报空指针异常:NullPointerException 1.创建类类型的数组方法一: 创建一个Person类,在main方法中创建p1,p2,p3,p4 几个Person 类的实例化对象。然后再使用如下代码创建类类型的数组p。Product [] p=new Product[]{p1,p2,p3,p4}; public class Test { public static void main(String[] args) { Product p1=new Product(); https://www.wendangku.net/doc/2717498483.html,="豆浆机"; Product p2=new Product(); https://www.wendangku.net/doc/2717498483.html,="电视机"; Product p3=new Product(); Product p4=new Product(); Product [] p=new Product[]{p1,p2,p3,p4};//创建类类型的数组方法一 for(int i=0;i

} } class Product{ int Num; String name; } 2.创建类类型的数组方法二: public class Test { public static void main(String[] args) { Product p1=new Product(); Product p2=new Product(); Product p3=new Product(); Product p4=new Product(); Product [] p={p1,p2,p3};//创建类类型的数组方法二for(int i=0;i

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数组和字符串

概述 什么是数组?除了基本数据类型,还提供一种导出类型:数组.数组是相同类型地数据按顺序组成地一种复合数据类型,通过数组名和下标,可以使用数组中地数据.下标从开始.数组是所有编程语言中常用地数据结构. 为什么要数组呢?我们来举一个例子.假设我们需要表示一个班个人地数学成绩,要求求出平均成绩.如果没有数组,我们需要用前面学过地声明变量地方法,声明个变量,写次加法运算!数组可以大大地简化类似地问题!我们只要声明一个长度为地整型数组,结合上一讲我们学过地循环语句,就可以很方便地解决这个问题! 在以前地编程语言比如或者中,字符串也使用数组来表示地:字符串是字符数组!所以字符串与数组有着天然地联系.但是在中,提供了一种更方便地表示字符串地方法:用一个类来表示.类是面向对象地语言特有地概念,对于初次接触面向对象技术地人来说,比较难理解.所以,这一讲,我们将学习表示字符串地类,也对类地使用有一个粗略地了解,作为下一讲详细学习类地准备. 需要指出地是,语言里地其他两种导出类型:结构体和共用体,在里已经被取消. 下面,我们来学习数组和字符串. 数组地声明、创建和初始化 数组地声明: 声明数组,包括声明数组地名字、数组包含地元素地数据类型.数组可以一维地,也可以是二维或者多维地.举例来说:一个班有个人,我们用一个长度为地一维数组表示;如果要表示每个同学地五门高考成绩,那我们就需要用一个第一维长度为,第二维长度为地二维数组. 声明一维数组有两种格式: 数组元素类型数组名[ ]; 数组元素类型[ ] 数组名; 比如:[ ]; 或者:[ ] ; 类似地,声明二维数组有两种格式: 数组元素类型数组名[ ][ ]; 数组元素类型[ ][ ] 数组名; 比如:[ ][ ]; 或者:[ ][ ] ; 下面,我们主要以一维数组为例,学习数组地用法. 数组地创建: 声明数组仅仅给出了数组名字和元素地数据类型,想要真正使用数组还必须为数组分配内存空间,也就是创建数组.在为数组分配内存空间时必须指明数组地长度.为数组分配内存空间地格式如下: 数组名数组元素地类型[ 数组地长度] 例如:[]; [] []; 事实上,数组地声明和创建可以一起完成,比如: [ ] []; 一旦数组被创建,数组地大小就不能改变.如果在程序运行期间,需要对数组地大小进行扩展,通常需要使用另一种数据对象:.有关向量和扩展数组,有兴趣地同学可以在帮助中查找地帮助.

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语言中,不可以将数组直接赋值给另一个数组;

实验三.数组与字符串

1.实验三数组与字符串 一、实验目的: 1.熟悉Java的数组的使用,编程练习数组声明、定义、遍历和排 序等操作。 2.熟悉Java的字符串相关类的使用,通过编程实现针对字符串的 一般操作。 二、实验内容: 1.定义一个有10个元素的整型数组,找出最大最小值; 2.定义一个有10个元素的整型数组,用选择法实现由小到大排序; 3.定义一个能实现冒泡法排序的方法bSort(int[] arr),然后定义并 初始化一4*5的二维数组,用bSort(int[] arr)将该二维数组的每 行元素进行升序排序; 4.编程求解一个3*3矩阵每一行的元素之和,每一列元素之和,对 角线元素之和,并输出。 5.接收键盘输入的字符串,使用String类的方法indexOf()来统 计该字符串中各个字符出现的次数。 6.设定并初始化一个字符串数组,并将数组中那些以字母b开头的 元素打印出来。 7.接收键盘输入的字符串,分别按顺序输出该字符串中的大写字符 和小写字符。 8.接收键盘输入的英文字符串(单词之间用空格隔开),将字符串 中出现的单词首字母改成大写后输出。 三、实验要求: 1.通过实验掌握数组的定义和初始化; 2.掌握数组最值求解算法; 3.掌握数组的基本排序算法; 4.掌握遍历数组的算法; 5.通过实验掌握String类的使用; 6.通过实验掌握String类常用方法的使用;

7.从JDK文档中查阅String类的以下方法(与本实验内容相关): split(),startWith(),toUpperCase(),indexOf(),charAt(),并说明 它们的用法; 8.写出实验报告。 四、实验学时:3学时 五、实验步骤: 1.进入Java编程环境; 2.新建一个Java文件,编写main()方法实现一维数组求最值的算 法; 3.新建一个Java文件,编写main()方法实现一维数组选择法排序 算法; 4.新建一个Java类,定义bSort(int[] arr)方法(冒泡法)实现数组 升序排序,然后在main方法里实现对一4*5二维数组每行元素 的升序排序; 5.新建一个Java文件,编写main()方法声明并初始化一两维3*3 数组,设计算法实现行、列和对角线元素的求和操作; 6.编写主方法main(),其中实现接收键盘输入功能、文件操作功能 和文件内容输出功能; 7.调用相应构造方法创建String对象; 8.查阅JDK文档,找出可以实现实验内容的String方法,设计算 法,编写程序; 9.调试运行程序,观察输出结果。

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__ A. a[0]=1; B. a[10]=2; C. a[0]=5*2; D. a[1]=a[2]*a[0]; 3.下面的二维数组初始化语句中,正确的是____ 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]前的数组元素个数为____ 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. 链表 8.下面程序的运行结果是____ main() { int a[][]={{1,2,3},{4,5,6}}; System.out.printf("%d", a[1][1]); } A. 3 B. 4 C. 5 D. 6 9.下面程序的运行结果是_C___ main() {

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.掌握数组的声明、分配空间及初始化 2.理解多维数组(重点掌握二维) 3.掌握String类的特点及常用方法的使用 4.掌握StringBuffer类的特点及常用方法的使用 5.掌握String类和StringBuffer类的区别 6.掌握equal方法与==的区别 【预习内容】 1.复习课件中理论知识 2.练习课堂所讲的例子 【实验内容及步骤】 1、请输入10个整数进行排序。 package com.shiyan5; import java.util.Scanner; public class ShiYan1 { /** * 1、请输入10个整数进行排序。 */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner s= new Scanner(System.in); int[] a=new int[10]; System.out.println("请输入10个整数"); for(int i=0;i<10;i++){ a[i]=s.nextInt(); } System.out.print("输入原序列为:"); for(int i=0;i<10;i++){ System.out.print(a[i]+" "); } for(int i=0;i<10;i++){ for(int j=i+1;j<10;j++){ if(a[i]>a[j]){ int t=a[i]; a[i]=a[j];

a[j]=t; } } } System.out.print("\n排序后:"); for(int i=0;i<10;i++){ System.out.print(a[i]+" "); } } } 2、定义一个10个元素组成的一维数组,输出该数组中的最大值、最小值、所有元素总和,以及最大值和最小值在该数组中的位置。 package com.shiyan5; import java.util.Scanner; public class ShiYan2 { /** * 定义一个10个元素组成的一维数组,输出该数组中的最大值、最小值、所有元素总和 * ,以及最大值和最小值在该数组中的位置。 */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner s=new Scanner(System.in); int[] a=new int[10]; System.out.println("请输入10个整数"); for(int i=0;i<10;i++){ a[i]=s.nextInt(); } int max=a[0]; int min=a[0]; int maxwz=0; int minwz=0; int sum=0; for(int j=0;jmax){ max=a[j]; maxwz=j+1; } if(a[j]

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.wendangku.net/doc/2717498483.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数组与List之间相互转换的方法详解

数组与List之间相互转换的方法详解 1.List转换成为数组。(这里的List是实体是ArrayList) 调用ArrayList的toArray方法。 toArray public T[] toArray(T[] a)返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。如果列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此列表的大小分配一个新的数组。 如果指定的数组能容纳列表并有剩余空间(即数组的元素比列表的多),那么会将数组中紧跟在集合末尾的元素设置为null。这对确定列表的长度很有用,但只在调用方知道列表中不包含任何null 元素时才有用。 指定者: 接口Collection 中的toArray 指定者: 接口List 中的toArray 覆盖: 类AbstractCollection 中的toArray 参数: a - 要存储列表元素的数组,如果它足够大的话;否则,它是一个为存储列表元素而分配的、具有相同运行时类型的新数组。 返回: 包含列表元素的数组。 抛出: ArrayStoreException - 如果a 的运行时类型不是此列表中每个元素的运行时类型的超类型。 具体用法: 复制代码代码如下: List list = new ArrayList(); list.add("1");

list.add("2"); finalint size = list.size(); String[] arr = (String[])list.toArray(new String[size]); 2.数组转换成为List 调用Arrays的asList方法. JDK 1.4对java.util.Arrays.asList的定义,函数参数是Object[]。所以,在1.4中asList()并不支持基本类型的数组作参数。 JDK 1.5中,java.util.Arrays.asList的定义,函数参数是Varargs, 采用了泛型实现。同时由于autoboxing 的支持,使得可以支持对象数组以及基本类型数组。 不过在使用时,当传入基本数据类型的数组时,会出现小问题,会把传入的数组整个当作返回的List中的第一个元素,例如: 复制代码代码如下: public static void main(String[] args){ int[] a1 = new int[]{1,2,3}; String[] a2 = new String[]{"a","b","c"}; System.out.println(Arrays.asList(a1)); System.out.println(Arrays.asList(a2)); } 1.打印结果如下: 复制代码代码如下: 1 2 [[I@dc8569] [a, b, c] 下面说说Arrays.asList()的返回值: JDK文档是这么说的: public static ListasList(T... a) 返回一个受指定数组支持的固定大小的列表。(对返回列表的更改会“直接写”到数组。)此方法同Collection.toArray() 一起,充当了基于数组的API 与基于collection 的API 之间的桥梁。返回的列表是可序列化的,并且实现了RandomAccess。此方法还提供了一个创建固定长度的列表的便捷方法,该列 复制代码代码如下:

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概述 什么是数组?除了基本数据类型,Java还提供一种导出类型:数组。数组是相同类型的数据按顺序组成的一种复合数据类型,通过数组名和下标,可以使用数组中的数据。下标从0开始。数组是所有编程语言中常用的数据结构。 为什么要数组呢?我们来举一个例子。假设我们需要表示一个班50个人的数学成绩,要求求出平均成绩。如果没有数组,我们需要用前面学过的声明变量的方法,声明50个变量,写50次加法运算!数组可以大大地简化类似的问题!我们只要声明一个长度为50的整型数组,结合上一讲我们学过的循环语句,就可以很方便地解决这个问题! 在以前的编程语言比如C或者C++中,字符串也使用数组来表示的:字符串是字符数组!所以字符串与数组有着天然的联系。但是在Java中,提供了一种更方便的表示字符串的方法:用一个String类来表示。类是面向对象的语言特有的概念,对于初次接触面向对象技术的人来说,比较难理解。所以,这一讲,我们将学习表示字符串的String类,也对类的使用有一个粗略的了解,作为下一讲详细学习类的准备。 需要指出的是,C语言里的其他两种导出类型:结构体和共用体,在Java里已经被取消。 下面,我们来学习数组和字符串。 2数组的声明、创建和初始化 2.1数组的声明: 声明数组,包括声明数组的名字、数组包含的元素的数据类型。数组可以一维的,也可以是二维或者多维的。举例来说:一个班有50个人,我们用一个长度为50的一维数组表示;如果要表示每个同学的五门高考成绩,那我们就需要用一个第一维长度为50,第二维长度为5的二维数组。 声明一维数组有两种格式: 数组元素类型数组名[ ]; 数组元素类型[ ] 数组名; 比如:int student[ ]; 或者:int[ ] student; 类似地,声明二维数组有两种格式: 数组元素类型数组名[ ][ ]; 数组元素类型[ ][ ] 数组名; 比如:int score[ ][ ]; 或者:int[ ][ ] score; 下面,我们主要以一维数组为例,学习数组的用法。 2.2数组的创建: 声明数组仅仅给出了数组名字和元素的数据类型,想要真正使用数组还必须为数组分配内存空间,也就是创建数组。在为数组分配内存空间时必须指明数组的长度。为数组分配内存空间的格式如下: 数组名= new 数组元素的类型[ 数组的长度] 例如:student = new int [50]; score = new int [50] [4]; 事实上,数组的声明和创建可以一起完成,比如: int student [ ] = new int [50];

JAVA数组基础学习知识-情况总结与简单规范标准示范

只为成功找方法,不为失败找借口! java基础学习总结——数组 一.数组的基本概念 ?数组可以看成是多个相同类型数据组合,对这些数据的统一管理。 ?数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。 ?数组的元素可以是任何数据类型,包括基本类型和引用类型。 ?C和C++中的数组都可以分配在栈上面,而JAVA中的数组是只能分配在堆上面的,因为JAVA中的数组是引用类型。 二.一维数组 一维数组的声明方式有2种: ?格式一:数组元素类型数组名[ ]; 即type var[ ]; ?格式二:数组元素类型[ ] 数组名; 即type[ ] var; ?格式二声明数组的方法与C#上声明一维数组的方法一样。 例如:int a1[ ]; int[ ] a2; double b[ ]; person[ ] p1; String s1[ ]; 注意:JAVA语言中声明数组时不能指定其长度(数组中的元素个数) 如:int a[5]; 这样声明一维数组是非法的。 三.数组的模型 ?一维数组:一维数组就是一行,一行小格。 ?二维数组:二维数组就是一行加一列组成的一个平面分成的小格,有行有列。 ?三维数组:三维数组就是一个立方体。 ?人类对最多认识到三维空间。 四.数组对象的创建 JAVA中使用关键字new创建数组对象。 格式为:数组名= new数组元素的类型[数组元素的个数]

例如: 五.元素为引用数据类型的数组 注意:元素为引用数据类型的数组中的每一个元素都需要实例化。例如: class Date{ int year; int moth; int day; Date(int y; int m, int d){ year=y ; month=m ; day=d ; } }

相关文档
相关文档 最新文档