Java中[]数组和ArrayList的区别

数组[]

其容量固定且无法动态改变
最高效

ArrayList

容量可动态增长
效率相对低一些

两者不同

如果无法确定数组大小 建议使用 ArrayList

数组[]使用
创建new []对象
nums[index] = 添加
= nums[index] 获取

ArrayList使用
创建ArrayList对象
使用add()方法 添加对象
使用get(index)获取值

对于ArrayList来说,
当执行Add、AddRange、Insert、InsertRange等添加元素的方法,都会检查内部数组的容量是否不够了,如果是,它就会以当前容量的两倍来重新构建一个数组,将旧元素Copy到新数组中,然后丢弃旧数组,在这个临界点的扩容操作,应该来说是比较影响效率的。

ArrayList是Array的复杂版本
ArrayList内部封装了一个Object类型的数组,从一般的意义来说,它和数组没有本质的差别,甚至于ArrayList的许多方法,如Index、IndexOf、Contains、Sort等都是在内部数组的基础上直接调用Array的对应方法。

两者转换

字符串举例子

import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("java1");
        list.add("java2");
        list.add("java3");
        int size = list.size();

        String[] temp = list.toArray(new String[size]);

        for (String s: temp){
            System.out.print(s + " "); // java1 java2 java3 
        }
    }
}
java1 java2 java3 

整数转换


import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        int size = list.size();
        Integer[] b = new Integer[size];

        b = list.toArray(b);
        for (int s: b){
            System.out.print(s + " "); //1 2 3 
        }
    }
}

[] 转换为ArrayList
使用Arrays.asList()

import java.util.ArrayList;
import java.util.Arrays;

public class Test {
    public static void main(String[] args) {
        String[] array = {"java01", "java02", "java03"};
        ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(array));

        System.out.println(arrayList); // [java01, java02, java03]
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值