java:数组和集合(例如ArrayList)的对比
问题:为什么java里有了array还要有arrayList?(相类比的:python里只有list没有array)
答案:因为arrayList是对array的补充,更灵活实用。
数组和arrayList都是一维的,但数组可以通过下标直接访问,arrayList只能通过遍历访问;数组能存储基本类型和对象,arrayList只能存对象;数组长度不可变,arrayList可扩容。
数组的优点:
数组的效率高于集合类
数组能存放基本数据类型和对象;集合中只能放对象
数组的缺点:
不是面向对象的,存在明显的缺陷
数组长度固定且无法动态改变;集合类容量动态改变
数组无法判断其中实际存了多少元素,只能通过length属性获取数组的申明的长度
数组存储的特点是顺序的连续内存;集合的数据结构更丰富
JDK 提供集合的意义:
集合以类的形式存在,符合面向对象,通过简单的方法和属性调用可实现各种复杂操作
集合有多种数据结构,不同类型的集合可适用于不同场合
弥补了数组的一些缺点,比数组更灵活、实用,可开发效率