数组的定义与使用

目录

1、定义

2、初始化

3、简单操作 

(1)输出数组长度

(2)获取数据

(3)遍历数组

使用 for 循环遍历

使用 for each循环遍历数组

使用操作数组的工具类 Arrays

(4)数组排序

(5)数组填充值

全部填充同一值

部分填充

4、认识 null 

5、数组作为方法的返回值

6、拷贝数组 


1、定义

        一组连续的空间,存放的是一组相同数据类型的数据

2、初始化

// 动态初始化

数据类型[ ] 数组名称 = new 数据类型 [ ] { 初始化数据 };

 例:int [ ] arr = new int [ ]{1, 2, 3};

        int [ ] arr = new int [ 3 ];       //此时数组的长度为3 默认储存的值为0

// 静态初始化

数据类型 [ ] 数组名称 = { 初始化数据 };
例: int  [ ] arr = { 1 , 2 , 3 };

注:静态初始化的时候, 数组元素个数和初始化数据的格式是一致的.  

3、简单操作 

         注:此部分的操作默认已初始化数组 array()

(1)输出数组长度

System.out.println(array.length);

下标访问操作不能超出有效范围 [0, length - 1] , 如果超出有效范围, 会出现下标越界异常  

(2)获取数据

 System.out.println(array [ 0 ]);       //获取0下标的数据

(3)遍历数组

  • 使用 for 循环遍历

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

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

}

  • 使用 for each循环遍历数组

for( int val : array){       // 此处第一个参数为与数组同数据类型的变量     第二个参数为数组名

   System.out.println(val);               

}

  • 使用操作数组的工具类 Arrays

String ret = Arrays.toString(array);

 System.out.println(ret);

 使用此方法时  要使用如下语句导包:

import java.util.Arrays;

(4)数组排序

  Arrays.sort(array);

(5)数组填充值

  • 全部填充同一值

Arrays.fill(array,99);      //第一个参数为数组名,第二个参数为填充值

  • 部分填充

Arrays.fill(array,3,6,99) // 第一个参数 为数组名    第二个参数为起始填充位置   第三个                                                    为终止填充位置       第四个参数为  填充值

填充位置近似于左闭右开的区间[3,6),即就是从3下标开始填充到5下标终止 

4、认识 null 

null Java 中表示 " 空引用 " , 也就是一个无效的引用
int  [ ] arr = null ;
System . out . println ( arr [ 0 ]);
// 执行结果
Exception in thread "main" java . lang . NullPointerException
at Test . main ( Test . java : 6 )
       null 的作用类似于 C 语言中的 NULL ( 空指针 ), 都是表示一个无效的内存位置 . 因此不能对这个内存进行任何读写操 作. 一旦尝试读写 , 就会抛出 NullPointerException.

 5、数组作为方法的返回值

代码示例 : 写一个方法 , 将数组中的每个元素都 * 2
// 直接修改原数组
 class Test { 
    public static void printArray(int[] arr) { 
        for (int i = 0; i < arr.length; i++) { 
           System.out.println(arr[i]);
         } 
    }
    public static void transform(int[] arr) { 
       for (int i = 0; i < arr.length; i++) { 
            arr[i] = arr[i] * 2;
       } 
    }
    public static void main(String[] args) { 
        int[] arr = {1, 2, 3}; 
        transform(arr); 
        printArray(arr); 
    } 
 }
// 返回一个新的数组
 class Test {

   public static void printArray(int[] arr) { 
    for (int i = 0; i < arr.length; i++) { 
       System.out.println(arr[i]);
     }
  }

  public static int[] transform(int[] arr) { 
    int[] ret = new int[arr.length]; 
    for (int i = 0; i < arr.length; i++) { 
       ret[i] = arr[i] * 2;
     }
    return ret; 
 } 

   public static void main(String[] args) {
       int[] arr = {1, 2, 3}; 
       int[] output = transform(arr); 
       printArray(output); 
  } 
}

6、拷贝数组 

(1)数组名.clone();

int [ ] 数组名 ={  };

int reet = 数组名.clone;

(2)拷贝指定长度数组

Arrays.copyOf( int [ ] 数组名 , length);

  当长度大于拷贝数组长度时补0

(3)拷贝一段数据

Arrays.copyOfRange(int [ ] 数组名,int from, int to);    //from为起始位置    to为终点位置 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值