集合

我只是一个虾纸丫 提交于 2019-12-01 16:55:24

集合的由来及集合继承体系图

* A:集合的由来

  * 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少

* B:数组和集合的区别

  * 区别1 :

    * 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值

    * 集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象Integer int double Double

  * 区别2:

    * 数组长度是固定的,不能自动增长

    * 集合的长度的是可变的,可以根据元素的增加而增长

* C:数组和集合什么时候用

  * 1,如果元素个数是固定的推荐用数组

  * 2,如果元素个数不是固定的推荐用集合(用处更多)

* D:集合继承体系图

 List的三个子类的特点

 

* A:List的三个子类的特点

 

  ArrayList:

 

    底层数据结构是数组,查询快,增删慢。

 

    线程不安全,效率高。

 

  Vector:

 

    底层数据结构是数组,查询快,增删慢。

 

    线程安全,效率低。

 

    Vector相对ArrayList查询慢(线程安全的)

 

    Vector相对LinkedList增删慢(数组结构)

 

  LinkedList:

 

    底层数据结构是链表,查询慢,增删快。

 

    线程不安全,效率高。

 

 

 

  Vector和ArrayList的区别

 

    Vector是线程安全的,效率低

 

    ArrayList是线程不安全的,效率高

 

    共同点:都是数组实现的

 

  ArrayList和LinkedList的区别

 

    ArrayList底层是数组结果,查询和修改快

 

    LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢

 

    共同点:都是线程不安全的

 

* B:List有三个儿子,我们到底使用谁呢?

 

  查询多用ArrayList

 

  增删多用LinkedList

 

  如果都多ArrayList

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!