精华内容
下载资源
问答
  • Array和ArrayList的区别

    2015-05-20 22:46:40
    Array和ArrayList的区别

        Array数组的定义:

                数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组。

       数组的使用
          特点:
         * 1.数组一旦定义,长度固定不可更改
         * 2.数组中只能存放同一类型的数据
         * 3.数组不适合于做数据的添加,删除操作(效率低)
         * 4.数组有下标,从0开始
         * 5.数组适合于做数据的检索和遍历

         *6.数组的存储空间是连续的

        

         ArrayList列表的定义:

                 ArrayList是一个容器,可以用来存放不同数据类型的数据

         ArrayList集合的使用
         * 1.ArrayList是一个容器,可以用来存放不同数据类型的数据
         * 2.ArrayList长度可变 (默认长度为10)
         * 3.ArrayList的本质是一个Object类型的数组
         * 4.适合做数据的遍历
         * 5.不适合做数据的添加和删除
         * 6.开辟的空间是连续的
         * 7.不是线程安全的

              

    展开全文
  • Array ArrayList 的区别

    千次阅读 2018-07-27 23:49:34
    Array ArrayList 的区别 2014年09月29日 11:44:19 阅读数:288 两者间的区别Array 的容量是固定的,ArrayList 的容量是根据需求自动扩展 ArrayList 提供了 添加、插入或移除 某一范围元素的方法 而 ...

    Array 和 ArrayList 的区别

    2014年09月29日 11:44:19

    阅读数:288

    两者间的区别:

    Array 的容量是固定的,ArrayList 的容量是根据需求自动扩展

    ArrayList 提供了 添加、插入或移除 某一范围元素的方法

    而 Array 中,只能一次获取或设置一个元素值

     

    用Synchronized方法可以很容易地创建ArrayList的同步版本

    而 Array 将一直保持它知道用户实现同步为止

     

    array 数组的用法

        type [] name = new type [size];

    注意:size不能省略,type前后要一致

    缺点:在数据间插入数据是

     

    ArrayList 动态数组的用法

        是 Array 的复杂版本

        动态的增加和减少元素,实现 ICollection 和 IList 接口灵活的设置数组大小

    
     
    1. ArrayList name = new ArrayList();

    2. for( int i = 0; i<3; i++ ){

    3. name.Add(i);

    4. Response.Write( name[i].ToString()+"<br>" );

    5. }

    6. Response.Write(name.Count + "<br>");

    7. foreach(int obj in name){

    8. Response.Write(obj+"<br>");

    9. }

     

    两者间的相互转换

    
     
    1. ArrayList List = new ArrayList();

    2. List Add(1); List Add(2); List Add(3);

    3. Int32[] values = ( int32[] ) List.ToArray ( typeof( Int32 ) );

    4. //Int32[] values = new Int32[List.Count];

    5. //List.CopyTo( values );

     

    影响 ArrayList 效率的几个因素

        1,由于Object类型的影响,在添加和修改元素时需要拆箱和装箱,会影响一部分效率

        2,数组扩容也是对ArrayList效率影响较大的一个因素

             当执行Add,AddRange,Insert,InsertRange等添加方法时,都会检查数组容量

             如果不够,它会以当前容量的两倍重构一个数组,将旧的元素Copy到新数组

        3,频繁使用 IndexOf,Contains 等方法也会引起效率的损失

              实际上也是执行简单的循环来寻找元素,建议使用Hashtable 或SotedList 等键值对的集合

    展开全文
  • Array和Arraylist的区别

    2017-02-26 18:39:47
    1)精辟阐述: 可以将 ArrayList想象成一种“会自动扩增容量的Array...基于效率类型检验,应尽可能使用Array,无法确定数组大小时才使用ArrayList! 不过当你试着解决更一般化问题时,Array的功能就可能过于受限

    1)精辟阐述:
    可以将 ArrayList想象成一种会自动扩增容量的Array”

    2Array[]):最高效;但是其容量固定且无法动态改变;
         ArrayList:  容量可动态增长;但牺牲效率;

    3)建议:
    基于效率和类型检验,应尽可能使用Array无法确定数组大小时才使用ArrayList
    不过当你试着解决更一般化的问题时,Array的功能就可能过于受限。

    4Java中一切皆对象,Array也是对象。不论你所使用得Array型别为何,

    Array名称本身实际上是个reference,指向heap之内得某个实际对象。

    这个对象可经由“Array初始化语法被自动产生,也可以以new表达式手动产生。

    5Array可做为函数返回值,因为它本身是对象的reference

    6)对象数组与基本类型数组在运用上几乎一模一样,唯一差别在于,前者持有得是reference,后者直接持有基本型别之值;
    例如:
    string [] staff=new string[100];
    int [] num=new int[10];

    7
    )容器所持有的其实是一个个reference指向Object,进而才能存储任意型别。当然这不包括基本型别,因为基本型别并不继承自任何classes

    8)面对Array,我们可以直接持有基本型别数值的Array(例如:int [] num;),也可以持有reference(指向对象)的Array;但是容器类仅能持有reference(指向对象),若要将基本型别置于容器内,需要使用wrapper类。但是wrapper类使用起来可能不很容易上手,此外,primitives Array的效率比起容纳基本型别之外覆类(的reference的容器好太多了。

    当然,如果你的操作对象是基本型别,而且需要在空间不足时自动扩增容量,Array便不适合,此时就得使用外覆类的容器了。

    9)某些情况下,容器类即使没有转型至原来的型别,仍然可以运作无误。有一种情况尤其特别:编译器对String class提供了一些额外的支持,使它可以平滑运作。

    10)对数组的一些基本操作,像排序、搜索与比较等是很常见的。因此在Java中提供了Arrays类协助这几个操作:sort(),binarySearch(),equals(),fill(),asList().

    不过Arrays类没有提供删除方法,而ArrayList中有remove()方法,不知道是否是不需要在Array中做删除等操作的原因(因为此时应该使用链表)。

    11ArrayList的使用也很简单:产生ArrayList,利用add()将对象置入,利用get(i)配合索引值将它们取出。这一切就和Array的使用方式完全相同,只不过少了[]而已。

    2.参考资料:
    1)效率:
    数组扩容是对ArrayList效率影响比较大的一个因素。
    每当执行AddAddRangeInsertInsertRange等添加元素的方法,都会检查内部数组的容量是否不够了,如果是,它就会以当前容量的两倍来重新构建一个数组,将旧元素Copy到新数组中,然后丢弃旧数组,在这个临界点的扩容操作,应该来说是比较影响效率的。

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

    2)类型识别:
    ArrayList存入对象时,抛弃类型信息,所有对象屏蔽为Object,编译时不检查类型,但是运行时会报错。
    ArrayList与数组的区别主要就是由于动态增容的效率问题了

    3ArrayList可以存任何Object,如String等。

    展开全文
  • 下面小编就为大家带来一篇详谈Array和ArrayList的区别与联系。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 大家在刷java面试题时肯定有遇到过《Array 和ArrayList的区别》这个面试题。今天就来聊聊他们二者的区别。长度的区别Array是数组,声明好之后,其长度就已经固定。ArrayList底层是用数组实现的,但是ArrayList的长度...

    大家在刷java面试题时肯定有遇到过《Array 和ArrayList的区别》这个面试题。

    今天就来聊聊他们二者的区别。

    4837dfac21ecd04c68bc60ff1115522c.png

    长度的区别

    Array是数组,声明好之后,其长度就已经固定。

    ArrayList底层是用数组实现的,但是ArrayList的长度是可变的,在每次添加时,如果发现空间不足的话,会创建一个长度大概是原来1.5倍的新数组(java8源码),然后把原来的数组元素复制过去。

    Array就好像是已经定制好的柜子,就是那么多格子。

    而ArrayList是可以自己组装的柜子,格子不够时,就再拼装一些。

    d509caa05cf3beb961e13f37aec6f878.pngArrayList长度增长

    存放数据的区别

    Array可以除了可以存放对象类型的数据之外,还可以存放基本数据类型的数据。

    而ArrayList只能存放对象数据类型的数据,因为它的类在定义时已经是针对Object的子类做了泛型的约束。

    ArrayList如果确实要存放基本数据类型的数据,那只能存放基本数据类型对应的包装类的数据。在数据的存取时可能会涉及到java基本数据类型的自动装箱、自动拆箱。

    使用方法的区别

    Array数组只能通过数组下标来对指定位置的元素进行变更。

    而ArrayList在Array的基础上增加了很多的方法。比如add,addAll,remove,removeAll,contains,以及iterator等等多种丰富的功能方法。

    效率上的区别

    因为ArrayList是在Array的基础上做了各种丰富多样的功能增强,所以ArrayList效率上自然是不如Array效率高了。

    使用场景的区别

    针对以上各种区别来说,如果是在整个过程中长度不会变化的话,可是使用Array数组。

    如果在使用过程中,大小不固定,可能需要动态增长的话,就需要使用ArrayList了。

    但是如果是频繁的增加删除元素的话,ArrayList就又显得不合适了。这块可以翻阅一下我的另一篇文章分析java面试题《ArrayList和LinkedList的区别》。

    今天就到这里。大家有什么问题或意见建议都可以在留言里告诉我。

    想学习更多的java知识技术,可以看看上面这本书。

    展开全文
  • Array和ArrayList的区别
  • Array和ArrayList的区别

    2010-05-11 16:37:00
    Array类型变量在声明同时必须进行实例化(至少得初始化数组大小),而ArrayList可以只是先声明。2 . Array只能存储同构对象,而ArrayList可以存储异构对象。同构对象是指类型相同对象,若声明为int[]...
  • Array和ArrayList的区别 1、Array类型的变量在声明的同时必须进行实例化(至少得初花数组的大小),而ArrayList可以只是先声明; 2、Array始终是连续存放的;而ArrayList的存放不一定连续; 3、Array对象的初始化...
  • 昨天去了一个java的实习面试,发现有好多java最基础的数据结构对于博主来说反而感到陌生,在面试官问一些常见的例如HashMap这样的数据结构,博主能回答的头头是道,但是在问到Array和ArrayList的区别和联系之后,却...
  • Array和ArrayList的区别: 1、Array类型的变量在声明的同时必须进行实例化(至少得初花数组的大小),而ArrayList可以只是先声明; 2、Array始终是连续存放的;而ArrayList的存放不一定连续; 3、Array对象的初始...
  • 博主今天去了一个java的实习面试,发现有好多java最基础的数据结构对于博主来说反而感到陌生,在面试官问一些常见的例如HashMap这样的数据结构,博主能回答的头头是道,但是在问到Array和ArrayList的区别和联系之后...
  • Java 中 Array ArrayList 有什么区别?两者适用情况是怎样?解答。。。
  • ArrayList内部封装了一个Object类型的数组,从一般的意义来说,它和数组没有本质的差别,甚至于ArrayList的许多方法,如Index、IndexOf、Contains、Sort等都是在内部数组的基础上直接调用Array的对应方法。...
  • java中Array和ArrayList的区别

    千次阅读 2018-09-24 09:58:19
    其实上面一句话就道尽了两者最核心的区别 (1)长度:Array长度固定,ArrayList可以动态扩容 (2)效率:效率上Array&gt;ArrayList,原因自然在于ArrayList动态扩容造成了效率损耗 两者之间的转换也非常简单: (1...
  • Array可以包含基本类型对象类型,ArrayList只能包含对象类型; Array(数组)大小是固定ArrayList(列表)大小是动态变化ArrayList提供了更多方法特性:addAll()、removeAll()、iterator等; 对于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 931
精华内容 372
关键字:

array和arraylist的区别