Java 第四节 数组

数组
data_type[] 数组名 or date_type 数组名[];

int a[]; 声明一个整形数组
double b[];声明一个双精度浮点型数组

访问数组需要:
①在内存中给数组分配存储空间
②并指定存储长度
利用new来引用
例:

  1. a= new int [10];
  2. double b[]=new double [10];
  3. 数组名[索引] (数组的索引是从0开始,a[0]…a[n])

定义后有初始值

  • 数值类型 为 0
  • 布尔值 为 F
  • 字符类型 为空字符
  • 引用类型 为 null

对数组初始化

  1. **静态初始化(**注意不要在数组声明中指定数组的大小,将会引发错误)
    例:
    int [] k={1,2,3,4};
    int []k = new int[]{1,2,3,4};
    2.动态初始化(将数组的定义和初始化分开进行)
    例:
    int [] array = new int [2];
    array[0]=1;
    array[1]=2;
public class FindMax{
 public static void main(String[] args){
           int []arraay ={10,23,6,88,19};
           int index =0;//最大索引号,默认为0
           int max = array[index];//最大值
           //寻找最大值
           for (int i=0;i<array.length;i++){ //遍历整个数组
           if(array[i]>max){
           index =i;
           max = array[i];
           }
        }
        System.out.println("最大值为"+max+",索引号为"+index);
      }
 }

最大值为88,索引号为3;

数组复制

  1. 循环语句进行复制
pubilc class ArrayCopyFor{
    public static void main(String[] args){
    int[] array1 ={1,2,3,4,5};
    int []array2 =new int [array.length];
    //复制
    for(int i=0;i<array1.length;i++)
    {array2[i] =array1[i];}
    //输出array2的结果
    for(int i=0;i<array2.length;i++)
    {System.out.print(array2[i]+",")}
    }
  }
}  
  1. clone方法
public class ArrayCopyFor{
   public static void main(String[] args){
   int [] array1 ={1,2,3,4,5};
   //复制
   int [] array2 = array1.clone();
   //输出array2 结果
   for (int i=0;i<array2.length;i++)
   {System.out.print(array2[i]+" ");}
   }
 }
  1. System.arraycopy(from,fromIndex,to,toIndex,count)
 public class ArrayCopy{
 public static void main(String[] args){
         int[] array1 ={1,2,3,4,5};
         int[] array2 = new int [array1.length];
         int [][] a = new int [3][3];
         //复制
         System.arraycopy(array1,0,array2,0,array1.length);
         //输出array2的结果
         for(int i=0;i<array.length;i++)
         {System,out.print(array2[i]+",");}
       }
     }
   }

二维数组
data_type[ ][ ] 数组名
创建二维数组 int [ ][ ] array =new int [10][ ];
使用二维数组之前 先进行初始化
如果知道数组元素,直接初始化数组。(如一维数组的静态初始化)
例:int [ ][ ] array = {{1,2},{3,4},{5,6}};

public class Array1DDemo{
    public static void main(String[] args){
    //定义二维数组
    int [][] array = new int [2][2];
        for (int i=0;i<array.length;i++){
             for(int j=0;j<array[i].length;j++){
                 array[i][j]=j+2*i+1;//把1,2,3,4分别赋给array[i][j]
                 }
               }
          for(int i=0;i<array.length;i++){
            for(int j=0;j<array[i].length;j++){
              System.out.println("array["+i+"]["+j+"]="+array[i][j]);
              }
           }
        }
     }

总结
1.数组是用来存储一组相同类型数据的有序集合
2.数组元素通过下标访问,第一个元素的下标从0开始
3.数组是静态结构,无法动态增长
4.数组属于对象范畴,可以使用.length属性获得数组的元素个数
5.数组元素具有初始化默认值,数值类型的初始值为0,引用类型的初始值为null
6.数组的拷贝可以使用for循环,。clone()方法,System.arraycopy()方法。
7.数组必须先分配空间才能使用
8.数组可以存储基本类型数据,也可以存储对象类型数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值