day_05_Java数组

星期四, 十一月 05, 2015 14:16

 

一:一维数组

 

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

 

1.数组的声明和内存分配

 

      -----要使用Java的数组,必须经过2个步骤:

             a. 声明数组

             b.分配内存给该数组

 

     -----格式

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

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

 

             数据类型 数组名[] = new 数据类型[个数]

 

      ----解析

            数组类型:

                    ---是声明数组元素的数据类型,

                    ---常见的类型: 整型、浮点型、字符型

          数组名:

                ---用来统一这组相同数据类型的元素的名称,其命名规则和变量相同(小大大)

 

           new:

               ---是命令编译器根据括号里的个数,在内存一块内存中开辟一块内存供数组使用。

          事例~

              int score[];

              score = new int[3];

             变量score所保存的并非是数组的实体,而是数组实体的参考地址.

 

 

 

代码案例:

        声明一个一维数组,其长度为3,利用for循环输出数组的内容后,再输出数组的元素个数。

 

package day03;

 

public class TestArray {

/* 声明一个以为数组,其长度为3,利用for循环输出数组的内容后,再输出数组的元素个数。*/

 

public static void main(String[] args) {

int arrayOne[] = new int[3];

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

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

}

System.out.println("数组的个数为:"+arrayOne.length);

}

}

运行结果:

 

arrayOne[0]=0 arrayOne[1]=0 arrayOne[2]=0 数组的个数为:3

 

 

2.数组的赋值

 

    ----格式

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

 

    ----例子

        int day[] = {12,23,45};//数组声明并赋值

 

3.数组的应用范例

    

     索引就像房间的编号,先找到某个房间,先找到编号!

     说明如何将数组里的最大值及最小值列出。

 

package day03;

 

public class TestArray {

/* 声明一个以为数组,其长度为3,利用for循环输出数组的内容后,再输出数组的元素个数。*/

 

public static void main(String[] args) {

          /*说明如何将数组里的最大值及最小值列出。*/

int a[] = {1,3,5,37,25};

/*需要先进行赋值*/

int max = a[0];

int min = a[0];

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

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

if(max < a[i]) {

max = a[i];

}

if(min > a[i]){

min = a[i];

}

}

System.out.println();

System.out.println("max="+max);

System.out.println("min="+min);

}

}

 

运行结果:

 

1 3 5 37 25

max=37

min=1

 

 

4.与数组有关的API方法

 

   ----查阅相关的文档

   ----简单介绍数组的拷贝,数组的排序

 

 

java api

     http://docs.oracle.com/javase/7/docs/api/

 

 

  

a.arraycopy复制数组的使用

 

   参考:API

        ----  arraycopy(Object src,  int  srcPos, Object dest, int destPos,int length);

   参数:可查询api+google

       原数组,原起始位置,目的数组,目的起始位置,复制的长度

 

代码案例:

     package day03;

 

public class TestArrayCopy {  

public static void main(String[] args) {

/*api   arraycopy方法

* 在一维数组中使用,arraycopy方法,会改变原目的的数组*/

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

int a2[] = {2,5,1,2,5,1,98};

System.arraycopy(a1, 0, a2, 3, 3);

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

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

}

 

 

}

}

运行结果:

    2 5 1 1 3 2 98

 

b.sort排序的使用

  

    参考API或google

        ---sort(int[] a, int fromIndex, int toIndex)

     参数: 数组,排序起始位置,排序结束位置

 

代码案例:

package day03;

 

import java.util.Arrays;

 

public class TestArray {

public static void main(String[] args) {

/*使用sort方法进行排序*/

int s1[] = {1,4,2,5,8};

   Arrays.sort(s1,0,4);

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

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

   }

   

 

}

}

 

运行结果:

    1 2 4 5 8

 

 

 

二:二维数组

 

    由于一维数组不满足实际的应用,所以需要二维或多维数组。

 

1.二维数组的声明与分配内存

  

2.格式

 

      数据类型  数组名[][];

      数组名 = new 数据类型[行的个数][列的个数];

     ----数据类型  数组名[][] = new 数据类型[行的个数][列的个数];

 

3.数组赋值

 

      如果想直接在声明时就对数组赋初值,可以利用大括号完成。

      只要在数组的声明格式后面再加上所赋的初值即可。

 

     数据类型 数组名[][] = {{第0号初值},{第1行的初值},....{第n行初值}}

   

    注意:

         用户不需要定义数组的长度。

       

4.数组展示类型

      ----每行的元素个数不同的数组

  

代码案例:

package day03;

 

import java.util.Arrays;

 

public class TestArrayTwo {

public static void main(String[] args) {

/*每行的元素个数不同的数组*/

int a[][] = {{11,22,33,44,55},{66,77,88,99}};

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

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

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

}

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

}

}

}

 

运行结果:

11 22 33 44 55

66 77 88 99

 

 

    ----取得二维数组的行数与特定行数的元素的个数

 

    语法:

         数组名.length              //取得数组的行数

         数组名[行的索引].length    //取得特定行元素的个数

 

 

 

5.二维数组元素的引用与访问

   

   案列见上述代码案例

 

三.多维数组

  

   以三维数组为例,在声明数组时即赋初值,再将其元素值输出并计算总和。

   

  代码案例:

package day03;

 

import java.util.Arrays;

 

public class TestArray {

public static void main(String[] args) {

/*维数组的赋值与输出*/

 

int a[][][] = {{{5,1},{6,7}},{{8,9},{11,12}}};

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

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

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

    System.out.println("a["+i+"]"+"["+j+"]"+"["+k+"]="+a[i][j][k]);

    }

    }

   }

}

}

 

运行结果:

a[0][0][0]=5

a[0][0][1]=1

a[0][1][0]=6

a[0][1][1]=7

a[1][0][0]=8

a[1][0][1]=9

a[1][1][0]=11

a[1][1][1]=12

 

星期四, 十一月 05, 2015 15:45:47

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值