字节跳动一面,面试官问我集合和数组有什么区别?我回答了3点,面试官给我竖起了大拇指...

为什么要有集合?

  通过几个月的学习,我发现我们始终在跟数据打交道,如何传输数据,如何接收数据,如何存储数据。生活中我们有各种各样的容器,比如袋子,碗,水果篮,箱子,甚至车的后备箱都能看作是一个容器。这些容器有什么异同呢,它们都有一个功能那就是能装东西,不同的是它们的容量不同,它们有的大有的小,有的是封闭的,有的不是封闭的。正是有了这些容器才使得我们的生活更有质量。

  同样的,在java中也存在各种各样的‘容器’,我们把java中所有的‘容器’的总称叫做集合。它在JavaSE阶段有着举足轻重的地位,望诸君好好学。

  首先谈谈我对集合的理解,在写这篇文章时,我已经过了五遍集合的基础知识了。集合在我看来就是一个存储数据的‘容器’。它的继承体系非常庞大,我们初学,目前只需了解一下集合。关于集合的加强后面会有个专门的文章。

Collection(接口)
    |--List(接口)
        |--ArrayList(类)
        |--LinkedList(类)
    |--Set(接口)
        |--HashSet(类)
        |--TreeSet(类)
Map(接口)
    |--HashMap(类)
    |--TreeMap(类)

  上面就是集合中的容器,它们的存储数据的形式各不相同。出现这种现象的原因是因为在Java中,集合底层封装了不同的数据结构,这里面的学问深不见底,望初学者也不要一头扎进去,这样会给自己压力。

数组VS集合

  数组是固定长度的,而我们的集合呢?如意金箍棒好吧,但是这个金箍棒有点问题,只能变长。能变长的比不能变的好吧,这大家都没异议吧,没人喜欢固定长度的吧(手动狗头)。题外话不说了,先看看它两的区别。

  1. 数组的长度不可变,集合的长度可变
  2. 数组存储的是同一个类型的数据,集合可以存储不同类型的数据
  3. 数组既可以存储基本数据类型,也可以存储引用类型。集合只能存储引用类型

我们说集合优于数组的主要原因是集合能存储引用类型的数据且长度可变(面向对象编程,存普通数据场景较少,但是没数组也是不行的)。而且一般集合也是存储同一类数据的。

你可能感兴趣的:(数组,集合)