Java中Array与ArrayList的区别

本文对比了Java中Array和ArrayList的五大不同之处:Array为静态结构不可变长,而ArrayList为动态结构可自动扩容;ArrayList在调整大小时性能受影响;Array支持基本数据类型和对象,ArrayList只支持对象;Array使用for循环遍历,ArrayList可用迭代器和for循环;Array支持多维,ArrayList一维但可嵌套。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整理自:JavaHungry

在Java中,Array和ArrayList主要有以下五点区别:

1.能否调整大小

Array是静态的数据结构,在创建Array对象后不能改变其大小。
ArrayList是动态的,当元素被加入ArrayList对象时,它的容量会自动增长。

2.性能

两者的性能区别取决于你所调用的函数。
resize()函数改变ArrayList大小时,性能会受到影响。resize()函数会使用临时数组将原来的ArrayList中的元素复制到新的ArrayList中。
add()或get()函数的时间复杂度均为常数。

3.数据类型

ArrayList不能包含基本数据类型。(如:int float double)
Array可以包含基本数据类型和对象

ArrayList<Integer> arraylist = new ArrayList();
arraylist.add(5);

表面上看添加了基本数据类型int,实际上JVM通过自动封箱(?Autoboxing)将int型隐式转换成了Integer型。
也就是:

ArrayList<Integer> arraylist = new ArrayList();
arraylist.add(new Integer(5));

4.遍历元素

ArrayList可以使用迭代器和for循环(包括for each循环)
Array使用for循环

5.能否多维

ArrayList是一维的,但可以嵌套

ArrayList<ArrayList<String>> arraylist = new ArrayList();

arraylist.get(0).add("Test");

System.out.println(arraylist.get(0).get(0));

Array是多维的

Integer addarrayobject[][] = new Integer[3][2];
addarrayobject[0][0]= new Integer(8)  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值