java 第六天 数组

数组

目标

掌握一维数组创建和使用的方法

掌握二维数组创建和使用的方法

掌握数组遍历

掌握填充和替换数组元素

掌握数组排序

掌握数组复制

掌握查询数组方法

一维数组的声明与创建

1.声明一维数组

语法格式:  数组元素类型  数组名字[ ]

            数组元素类型  [ ]数组名字

            int arr[ ];

            String str[ ];

 

2.一维数组创建

语法格式:数组名字 []=new 数组元素类型[数组元素个数]

           arr=new int[5];

 

arr[0]

arr[1]

arr[2]

arr[3]

arr[4]

 

1.   声明同时创建数组

语法格式:数组元素类型数组名[]=new 数组元素类型[数组元素的个数]

          int arr[ ]=new int[16];

项目一:一维数组的初始化

语法格式:int arr[ ]=new int[]{13579};

静态初始化

publicclass p1 {

    publicstaticvoid main(String[] args) {

    int s[]=newint[]{1,3,5,7,9,11,13};

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

    {

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

    }

    }

}

动态初始化

publicclass p2 {

 

 

    publicstaticvoidmain(String[] args) {

   int s[]=newint[10];

   for(int i=0;i<10;i++)

   {

       s[i]=2*i+1;

      

   }

   for(int j=0;j<s.length;j++)

   {

       System.out.println("s["+j+"]="+s[j]);

   }

      

    }

}

 

数组创建过程:声明数组在栈内存创建变量s,并不开辟空间。

 

 

缺省初始化

    publicclass p2 {

    publicstaticvoidmain(String[] args) {

   int s[]=newint[10];

   for(int j=0;j<s.length;j++)

   {

       System.out.println("s["+j+"]="+s[j]);

   }

      

    }

}

明确:

数组如果没有初始化:int 类型数组默认为0;

                    Boolean类型默认为:FALSE

                    Float类型默认为:0.0

 

项目二:二维数组的创建与初始化

1.  声明二维数组

语法格式:

数组元素类型 数组名[][];

或者 数组元素类型 [][] 数组名;

      intmyarr[][];

2.  创建二维数组

      myarr=new int [2][4];

 

3.  另一种创建的方式

     a=new int[2];

     a[0]=new int[4];

a[1]=new int[4];

a[2]=new int[4];

4.  Java中的多维数组每一维的长度可以不同   

            int a[][];

            a=new int[3][];

            a[0]=new int[4];

a[1]=newint[3];

a[2]=newint[2];

 

 

a[0][0]

a[0][1]

a[0][3]

a[0][3]

a[1][0]

a[1][1]

a[1][2]

 

a[2][0]

a[2][1]

 

 

初始化:

例如:

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

 

 

例如:创建后再赋值

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

a[0][0]=1;

a[0][1]=2;

a[1][0]=3;

a[1][1]=4;

  

publicclass p3 {

 

    publicstaticvoidmain(String[] args) {

   

       int a[][]=newint[3][4];

       for(int i=0;i<3;i++)

       {

            for(intj=0;j<4;j++)

            {

               a[i][j]=i+j;

            }

          

       }

    //*************************************

       for(int k=0;k<3;k++)

       {

            for(intl=0;l<4;l++)

            {

               System.out.println(a[k][l]);

            }

          

       }

      

    }

 

}

 

项目三:数组复制

v Java类库中提供了一个静态方法.arraycopy实现数组元素的拷贝。

格式:

        System.arraycopy(source,n1,dest,n2,n3);

其中:

        source:源数组名

        n1:源数组下标起始位

        dest:目标数组名

        n2:目标数组下标起始位

        n3:复制元素的个数

 

public class k4_5

{

   public static void main (String[]args)

   {

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

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

      System.arraycopy(a,0,b,0,3);

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

            {

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

               }

     }

}

项目四:数组元素排序

v Java.util包中专门有一个数组类Arrays用于排序、排序后查找等操作。

使用:

        int a []={6,8,24,1,2};

        Array.sotr(a);

使用时必须引用: import java.util.Arrays

import java.util.Arrays;//引用

public class k4_6

{

   public static void main (Stringargs[])

   {

    int a []={6,1,34,27,31,-1,94};

        Arrays.sort(a);

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

             {

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

                }

   }

}

项目五:Java中常用的包

v java.applet:包含一些用于创建Java小应用程序的类。

v java.awt:包含一些用于编写与平台无关的图形界面(GUI)应用程序的类。

v java.io:包含一些用作输入输出(I/O)处理的类。

v java.lang:包含一些Java语言的基本类与核心类,如String、Math、Integer、System和Runtime,提供常用的功能,这个包中的所有类是被隐式导入的。

v java.net:包含用于建立网络连接的类,与java.io同时使用完成与网络有关的读写。

v java.util:包含一些实用工具类和数据结构类。

 

项目六:使用数组打印9*9乘法表

public class t4 {

    public staticvoid main(String[] args) {

        // TODO 自动生成方法存根

        inta[][]=new int[9][];  //9行   n(可变)列

                //将计算结果放入数组中

                  for(int i=0;i<a.length;i++)//外层循环控制行  9  0-8

          {

               a[i]=new int[i+1];  //声明了每行的列数  a[1]=new int[2]

               //内层循环控制列  n  可变

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

              {

                 a[i][j]=(i+1)*(j+1);

              }

         } 

          //打印输出

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

          {

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

              {

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

              }

              System.out.println()

    }

}

结果:

1*1=1 

1*2=2  2*2=4 

1*3=3  2*3=6  3*3=9 

1*4=4  2*4=8  3*4=12 4*4=16 

1*5=5  2*5=10  3*5=15 4*5=20  5*5=25 

1*6=6  2*6=12  3*6=18 4*6=24  5*6=30  6*6=36 

1*7=7  2*7=14  3*7=21 4*7=28  5*7=35  6*7=42 7*7=49 

1*8=8  2*8=16 3*8=24  4*8=32  5*8=40 6*8=48  7*8=56  8*8=64 

1*9=9  2*9=18  3*9=27 4*9=36  5*9=45  6*9=54 7*9=63  8*9=72  9*9=81

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值