Java 数组与容器类的区别
最近在自学容器类,感觉和之前学的数组有相似之处,想知道各种容器类与数组的根本区别或者说是什么情况用数组,什么时候用容器类,谢谢了。...
最近在自学容器类,感觉和之前学的数组有相似之处,想知道各种容器类与数组的根本区别
或者说是什么情况用数组,什么时候用容器类,谢谢了。 展开
或者说是什么情况用数组,什么时候用容器类,谢谢了。 展开
5个回答
展开全部
容器类和数组,整体没啥区别,归根结底都是为了编程计算算法等需要出现的数据结构
所以说容器类和数组本质一样 存储数据的方式不一样,数组的存储方式是固定的,就是在初始化的时候数组有多少个元素就是固定的,而且类型必须是一致,比如里面是int类型,里面存放的元素全是int类型,不能有其他的类型。
而数组又是最常用的数据结构 所以几乎所有高级语言都可以直接定义数组
而java的容器类 ArrayList 底层结构也是数组 但是他大小可变,可以存放不同类型的值,里面也有泛型,不止ArrayList,还有Set ,Map等等,方式都差不多。都是可变的。
所以说容器类和数组本质一样 存储数据的方式不一样,数组的存储方式是固定的,就是在初始化的时候数组有多少个元素就是固定的,而且类型必须是一致,比如里面是int类型,里面存放的元素全是int类型,不能有其他的类型。
而数组又是最常用的数据结构 所以几乎所有高级语言都可以直接定义数组
而java的容器类 ArrayList 底层结构也是数组 但是他大小可变,可以存放不同类型的值,里面也有泛型,不止ArrayList,还有Set ,Map等等,方式都差不多。都是可变的。
2015-03-12
展开全部
数组 和 容器 的最大区别在于 数组是固定长度,而容易可以不断自动申请内存增加长度;
其次,数组是有序的集合,而在容器中又分为 有序List 和 无序Map 的集合,
所以,在什么时候使用数组和容器,最主要是你看你存入的值是不是动态改变长度的
其次,数组是有序的集合,而在容器中又分为 有序List 和 无序Map 的集合,
所以,在什么时候使用数组和容器,最主要是你看你存入的值是不是动态改变长度的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
容器类和数组 根本没啥区别 归根结底都是为了编程计算算法等需要出现的数据结构
所以说容器类和数组本质一样 存储数据的方式不一样
而数组又是最常用的数据结构 所以几乎所有高级语言都可以直接定义数组
而java的容器类 ArrayList 底层结构也是数组 但是他大小可变
至于什么时候用什么 还应当根据底层结构来分析
如果以前没有数据结构知识的话 推荐去看<<大话数据结构>>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组和其它容器的区别主要有三方面:效率,类型,和保存基本类型的能力.在JAVA中,数组是一种效率很高的存储和随机访问对象引用序列的方式.数组是一
个简单的线性序列,因此访问速度很快,但也损失了其它一些特性.创建一个数组对象后,大小就固定了,如果空间不够,通常是再创建一个数组,然后把旧数组中
的所有引用移到新数组中.数组可可以保存基本类型,容器不行.
容器类不以具体的类型来处理对象,而是将所有的对象都以Object类型来处理,所以我们可以只创建一个容器,任意的Java对象都可以放进去.容器类可
以使用包装类(Integer,Double等),以便把基本类型放入其中. List Set Map
都可以自动调整容量,数组不能。
个简单的线性序列,因此访问速度很快,但也损失了其它一些特性.创建一个数组对象后,大小就固定了,如果空间不够,通常是再创建一个数组,然后把旧数组中
的所有引用移到新数组中.数组可可以保存基本类型,容器不行.
容器类不以具体的类型来处理对象,而是将所有的对象都以Object类型来处理,所以我们可以只创建一个容器,任意的Java对象都可以放进去.容器类可
以使用包装类(Integer,Double等),以便把基本类型放入其中. List Set Map
都可以自动调整容量,数组不能。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议在学习集合(容器类)的时候阅读下相关源代码,可以很明确的发现ArrayList就是通过数组来实现各种功能的;
如果说二者有什么区别:
最大的区别是集合可变长,数组则是固定长度的,如果想改变数组的长度,则需要创建一个新的数组;
集合在处理不同数据有不同的方式和特性,而数组则没有。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询