小白Java笔记5,数组的声明与复制等

一、数组的声明

      因为在Java中没有像C++中的指针,所以在声明数组是也会有一些不同。

      方式1:类型[ ] array;

      方式2:类型 array[ ];

     注:一般都采用第一种方式进行声明,一个数组是一个对象,声明一个数组没有创建一个对象,声明时不需要指定长度(在C++中声明是必须指定数组长度,除了利用指针的动态数组)。

二、数组的创建

    创建基本数据类型数组:int[ ] i=new int[2];

    创建引用数据类型数组:Student[] s=new Student[100];

   注:数组创建后其中的元素有默认的初始值:

 

类型默认值

byte

0
short0
int0
long0l
float0.0f
double0.0d
char\u0000
booleanfalse
reference typesnull

 

 创建时一定要指定长度。

int[ ] i=new i[ ];                            //error

 三、数组的初始化

方法1:声明,创建,初始化分开

int[] i;
i=new int[10];
i[0]=0;
i[1]=1;
………
方法二:声明,创建,初始化同时

int[] i={0,1,2};                               //显示初始化,{}中有几个值,则长度为几 

int[] i=new int[]{0,1,2};                 //后面的[]中不允许出现长度

三、二维数组

       本质:二维数组其实是一个一维数组,他的每一个元素又是一个一维数组。

        几种初始化方式:int[ ] i1=new int[2][3];

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

                                     int[ ][ ]=new int[2][ ];  i2[0]=0;i2[1]=1;         //不允许先给低维分配空间。例如:int[ ][ ]=new int[ ][3];

        补充:length是数组的长度,数组的长度一旦确定不在改变。

四、数组的拷贝

一共提供三种方法:

1、自定义拷贝(i是源数组,i1是目标数组)

就是自己写方法实现拷贝,将数值一个一个放进目标数组中去,代码如下:

               

import java.util.Scanner;

public class TestArraysort {
    public static void main(String[] args) {
         int[] i=new int[10];
         int[] i1=new int[10];
         int j=0;
         int s=j+1;
         for(j=0;j<10;j++,s++)
         {  System.out.println("请输入第"+s+"个数据,谢谢");
            Scanner in=new Scanner(System.in);
            i[j]=in.nextInt();
         }
         for(int m=0;m<10;m++)
         {
             i1[m]=i[m];
         }
         System.out.println("自定义方式复制已经成功,如下便是: ");
         for(int m=0;m<10;m++)
         {   
             System.out.println("我是数组i1中的数值,数值是  "+i1[m]);
         }
}
}

2、System.arraycopy方法复制(i是源数组,i1是目标数组)

import java.util.*;
//import java.util.System;
public class TestArray {    
    /**
     * @param args
     */
    public static void main(String[] args) {
 int[] i=new int[10];
 int[] i1=new int[10];
 int j=0;
 int s=j+1;
 for(j=0;j<10;j++,s++)
 {  System.out.println("请输入第"+s+"个数据,谢谢");
    Scanner in=new Scanner(System.in);
    i[j]=in.nextInt();
 }

 System.arraycopy (i,0,i1,0,i.length);
 System.out.println("System.arraycopy方式复制已经成功,如下便是: ");
 for(int m=0;m<10;m++)
 {   
     System.out.println("我是数组i1中的数值,数值是  "+i1[m]);
 }
}
}
三、clone方法复制(i是源数组,i1是目标数组)

import java.util.Scanner;
public class TestArrayclone {
    public static void main(String[] args) {
         int[] i=new int[10];
         int[] i1=new int[10];
         int j=0;
         int s=j+1;
         for(j=0;j<10;j++,s++)
         {  System.out.println("请输入第"+s+"个数据,谢谢");
            Scanner in=new Scanner(System.in);
            i[j]=in.nextInt();
         }

         i1=(int[])i.clone(); 
         System.out.println("clone方式复制已经成功,如下便是: ");
         for(int m=0;m<10;m++)
         {   
             System.out.println("我是数组i1中的数值,数值是  "+i1[m]);
         }
}
}
 

五、总结

       如果有什么错误或者需要补充的地方希望大家多多指教和批评,如果大家有什么好的学习方法,还请不吝赐教,谢谢诸位了。      

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值