java数组的使用

一、创建数组

在java中数组的定义与c语言不同。

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

数组:存放相同数据类型的集合,内存是连续的。
new:实例化一个对象。
int[] array={1,2,3,4,5}中array是一个引用,存放的是数据的地址

    public static void main(String[] args) {
        int[] array = {1,2,3,4};
        int[] array2=new int[]{11,22,33,44};
        int[] array3=new int[4];
    }

二、数组的使用

int[] arr = {1, 2, 3};
System.out.println("length: " + arr.length); // 执行结果: 3
// 访问数组中的元素
System.out.println(arr[1]); // 执行结果: 2
System.out.println(arr[0]); // 执行结果: 1
arr[2] = 100;
System.out.println(arr[2]); // 执行结果: 100

注意事项:

  1. 使用 arr.length 能够获取到数组的长度. . 这个操作为成员访问操作符. 后面在面向对象中会经常用到.
  2. 使用 [ ] 按下标取数组元素. 需要注意, 下标从 0 开始计数
  3. 使用 [ ] 操作既能读取数据, 也能修改数据.
  4. 下标访问操作不能超出有效范围 [0, length - 1] , 如果超出有效范围, 会出现下标越界异常。
    遍历数组的两种方法
public static void main(String[] args) {
    int[] array={1,2,3,4}
    for (int i=0;i<array.length;i++){
        System.out.println(array[i]+" ");
    }
    System.out.println("===============");
    for (int val:array) {
        System.out.println(val+" ");
    }
}

for和foreach的区别:如果对象是可以随机访问的用for,效率更高,如果访问对象是顺序的用foreach,同时注意foreach用作访问,不进行数组或者列表的操作。

数组进行参数传递

对于数组传参,数组名称是一个引用,类似于c语言中的地址,传进函数的参数也是引用,这样可以避免数组进行无效拷贝。

认识null

这里的null和c语言中的不同,null在java中表示空引用,也就是一个无效引用。

    public static void main(String[] args) {
        int a=0;
        System.out.println(a);
        int[] array=null;//array引用的是个空对象
        System.out.println(array);
    }

Arrays

Arrays:操作数组的工具类。java.until.Arrays;很多实用的方法。
Arrays.toString();//将数组当中的数据,以字符串的形式输出。

    public static void main(String[] args) {
        int[] array={1,2,3,4,5,6,7,8,9,10};
        //将数组以字符串的形式进行输出
        System.out.println(Arrays.toString(array));
    }

三、数组的拷贝

在java中数组的拷贝有四种方式:
1.用for循环

    public static int[] copyArray(int[] array) {
        int[] ret=new int[array.length];
        for (int i = 0; i < array.length; i++) {
            ret[i]=array[i];
        }
        return ret;
    }
    public static void main(String[] args) {
        int[] array={1,2,3,4,5,6,7};
        int[] ret=copyArray(array);
        System.out.println(Arrays.toString(ret));
    }

2.用Arrays.copyOf
Arrays.copyOf(拷贝谁,拷贝的内容)

    public static void main(String[] args) {
        int[] array={1,2,3,4,5,6,7};
        int[] ret=Arrays.copyOf(arraya,rray.length);
        System.out.println(Arrays.toString(ret));
    }

3.System.arraycopy
System.arraycopy(原数组,原数组当中开始拷贝的位置,目的地数组,拷到那个位置,拷贝的长度)

    public static void main(String[] args) {
        int[] array={1,2,3,4,5,6,7};
        int[] ret=new int[array.length];
       System.arraycopy(array,srcPos:0,ret,destPos:0,array.length);
        System.out.println(A rrays.toString(ret));

4.clone()
clone:产生了这个对象的一个副本,这个方法是Object的克隆方法。

    public static void main(String[] args) {
        int[] array={1,2,3,4,5,6,7};
        int[] ret=array.clone();
        System.out.println(A rrays.toString(ret));
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值