黑马程序员技术交流社区

标题: 数组和集合的区别 [打印本页]

作者: 柳雷    时间: 2012-7-27 16:58
标题: 数组和集合的区别
本帖最后由 柳雷 于 2012-7-27 17:05 编辑

老师的这句话把我问晕了,数组难道不是集合的一种啊?
作者: 陈汉维    时间: 2012-7-27 17:00
{:soso_e136:}这这这,数组是不可变的,集合是可变的,这算是区别吗?貌似数组也是集合中的一种吧
作者: 乐峰    时间: 2012-7-27 17:03
一:数组声明了它容纳的元素的类型,而集合不声明。这是由于集合以object形式来存储它们的元素。
二:一个数组实例具有固定的大小,不能伸缩。集合则可根据需要动态改变大小。
三:数组是一种可读/可写数据结构---没有办法创建一个只读数组。然而可以使用集合提供的ReadOnly方法,以只读方式来使用集合。该方法将返回一个集合的只读版本。


作者: 李菁    时间: 2012-7-27 17:04
1、数组声明了能添加的元素类型,集合不声明;
2、数组是静态的,数组具有固定大小,创建后就无法改变容量了。
集合可以动态扩展容量,根据需要动态改变大小;
3、数组的类型检查比集合要好;
4、数组是可读/可写数据结构,不能创建一个只读数组。
集合可以使用集合中提供的只读方式来实现集合的只读

作者: 黑马振鹏    时间: 2012-7-27 17:04
教你个答题技巧,你把数组和集合的定义和特点都说一遍,然后找几点不同就行。
作者: 柳雷    时间: 2012-7-27 17:04
聂峰 发表于 2012-7-27 17:03
一:数组声明了它容纳的元素的类型,而集合不声明。这是由于集合以object形式来存储它们的元素。
二:一个 ...

不错,回答得很好
作者: 乐峰    时间: 2012-7-27 17:05
柳雷 发表于 2012-7-27 17:04
不错,回答得很好

谢谢呵呵
作者: 高俊杰    时间: 2012-7-27 17:06
数组与几何的区别:
1、数组可以存储对象,但长度是固定的,集合的长度是可变的;
2、数组中可以存储基本数据类型和对象,集合只能存储对象;
作者: 杨志    时间: 2012-7-27 17:20
本帖最后由 杨志 于 2012-7-27 17:28 编辑

以下为jdk1.6中ArrayList中的构造函数源码。
  1.     public ArrayList(int initialCapacity) {
  2.         super();
  3.         if (initialCapacity < 0)
  4.             throw new IllegalArgumentException("Illegal Capacity: "+
  5.                                                initialCapacity);
  6.         this.elementData = new Object[initialCapacity];
  7.     }

  8.     /**
  9.      * Constructs an empty list with an initial capacity of ten.
  10.      */
  11.     public ArrayList() {
  12.         this(10);
  13.     }
复制代码
可以看出在建立ArrayList对象的时候。
默认建立了一个长度为10的Object数组。但是这只是ArrayList 的实现方式。
在LinkedList中是这样的。
  1. public LinkedList() {
  2. header.next = header.previous = header;
  3. }
复制代码
我不知道你们看不看得懂!如果有C 基础的话。应该知道这是链表实现的。
这就是为什么LinkedList的增删效率高!查询效率低!而ArrayList 的查询效率高!增删效率低!
这就是说其实数组只是集合实现的一种方式。
作者: 田向向    时间: 2012-7-27 17:31
不会,自己复习一下就可以了,不要泄题,这样的话,小心刘老师巡贴的时候把你给和谐了
作者: 职业规划-刘倩老师    时间: 2012-7-29 15:16
{:soso_e127:}
作者: cofujun    时间: 2016-5-26 22:09
数组声明了它容纳的元素的类型,而集合不声明。
数组是静态的,一旦创建了就无法改变容量了。而集合是可以动态扩展容量。
作者: cofujun    时间: 2016-5-26 22:12
一、数组声明了它容纳的元素的类型,而集合不声明。 二、数组是静态的,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2