1-2的问题。

1-2的问题。

1、集合到底是什么,是类还是接口?还是别的?

2、集合和数组有什么关系?

3、Collection和Map是接口,那和集合有什么关系?

4、Collection是类对对象。。。Map是键值对。。这两句话怎么理解?

5、我不理解,Collection接口为什么有三个子接口,然后三个子接口又有各自的实现类,这咋弄的这么复杂啊,像是连环套,不能理解啊。

6、为什么不直接使用类去操作解决,而要发展出一套金字塔型的接口--子接口--实现类,这么复杂的程序?

7、接口的抽象方法必须得在实现类得到重写,不然实现类也要称为抽象类,这么理解的话,ArrayList类岂不是要实现Collection和List两个接口的所有方法喽?


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
l学生哥 2019-08-18 10:29:32
  1. 集合直接理解为容器.都是接口

  2. 集合和数组是可以相互转换的.集合的底层就是数组.

  3. 都是通过子类来操作.

  4. 就是一个存储的方式.

  5. 根据使用场景不用,选择对应的方法.就是为了方便而已.

  6. 接口可以多继承.

  7. 最主要的是子类实现抽象类,


好帮手慕阿莹 2019-08-12 13:37:02

并不一定实现了所有的方法呦,因为方法比较多,无法一一验证呦。同学可以看一下方法的介绍:

http://img1.sycdn.imooc.com//climg/5d50faa40001b7e308880492.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 鱼儿0001 #1
    可是老师,接口的抽象方法必须得在实现类得到实现啊,ArrayList类怎么可能没有去q全部实现Collection和List接口的方法?
    2019-08-12 14:22:45
  • 好帮手慕阿莹 回复 提问者 鱼儿0001 #2
    因为它并不是直接实现Collection的,它是继承了抽象类AbstractList,AbstractList 又继承了AbstractCollection并实现了List, 而AbstractCollection又实现了Collection,其中有抽象的类,经过重重继承实现,有些方法可能就不需要重写了,所以这里同学不必纠结。如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2019-08-12 15:05:33
好帮手慕珊 2019-08-10 11:04:14

同学,你好!

1、关于集合的概念问题,集合是用来存储数据的,所以可以看成是容器。集合是Set、List、Map等这些的一个统称,一个概念,并不是引用类型。

2、集合是一堆接口和类的总称

3、Collection中之间存储类的对象,比如:Set和List中可以直接添加对象。而Map是存储键值对,其实最终目的也是存储对象,只是需要以键值对的形式存储。这个地方,老师是对比Collection和Map的存储方式不同。

4、关于你的第六个问题,在集合中使用接口,是形成了一个集合的体系,很清晰的看到每个集合都具备什么特点。这样使用起来比单独很多个零散的类,是更加方便的。

5、关于你的最后一个问题,老师是介绍了ArrayList的常用方法,可以通过查阅API文档看到所有方法。

如果我的回答解决了你的以后,请采纳!祝学习愉快!


  • 提问者 鱼儿0001 #1
    谢谢老师的回复。我问的最后一个问题是这个意思:Collection和List接口里的抽象方法都必须得在ArrayList方法里重写,这就好比抽象父类的抽象方法必须要在子类里去重写,那么,ArrayList就要全部去重写两个接口的抽象方法啊,这和查阅API文档有什么关系?难不成查阅了API,ArrayList实现类就获得了豁免权,不用去重写接口的抽象方法?按照老师的逻辑,抽象父类的方法,子类也可以不去写,只要查阅API就可以了?
    2019-08-10 16:15:21
  • 好帮手慕珊 回复 提问者 鱼儿0001 #2
    你好!这个地方因为你提到只有两个方法,add和remove,所以说可以查看API文档,会发现API文档中还有其他方法。不知道你回复中的第5点是否要表达这个意思。祝学习愉快!
    2019-08-10 18:33:13
  • 提问者 鱼儿0001 回复 好帮手慕珊 #3
    老师,ArrayList类实现了Collection和List两个接口的所有方法吗?
    2019-08-11 22:25:16
好帮手慕酷酷 2019-08-08 18:31:22

同学你好,

1、 简单来讲:集合就是一个放数据的容器。它既不是类也不是接口,我们将set(集)、list(列表)和map(映射)Queue 统称为集合。

2、集合可以理解为是一个可改变长度的数组。

     数组则是不能改变长度,只能初始化进行定义固定长度。

3、集合中包含Collection和Map接口。具体如图:

http://img1.sycdn.imooc.com//climg/5d4bf49e00017ddd07860442.jpg

4、Collection是类的对象,可以理解为:比如Student类的对象stu,我们可以将stu存入Set、List、Queue中,Map是键值对比如前面的购物车的例子,我们的键就是商品编号‘id’ ,值就是商品的id值如‘1’号。key-value的存储方式。

5、Java中集合的设计使用多个接口,可以使代码更加有扩展。

6、集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算,如果直接使用类的方式,整个集合将没有扩展性,代码没有复用性,而且为以后集合的后续开发也产生很多困难。

7、你的理解是正确的,Java在ArrayList类已经实现Collection和List两个接口的所有方法

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 鱼儿0001 #1
    谢谢老师的回复。1、老师说,集合不是接口不是类,是容器,java里没有容器这个概念吧,它难道属于引用类型?2、集合是指一堆接口和类的总称吗?类似于给一口火锅里下了蔬菜、牛肉、面条?3、老师对第四个问题的回复,看的我好费解和迷糊,根本看不懂,能再解释下吗?4、老师,我问的第六个问题,你回复的能再明晰点吗?5、关于我问的最后一个问题,老师说ArrayList得实现Collection和List两个接口的所有方法,但是在课程里,并没有啊,课程里写的是ad方法啊,remove方法啊。
    2019-08-09 23:03:46
  • 用户1150817 回复 提问者 鱼儿0001 #2
    通过查文档,可以知道Collection和Map都是接口。接口简单理解就是制定一套规范。 同样都是集合,但是通过Collection和Map从大方向上将集合分为两大类。 Collection这边存储的主要是普通的数据序列,Map存储的则是Key,Value这种数序列 而根据数据存储方式或性能等具体要求的不同,又有各自不同的接口进行更细一层的分类,例如List、Queue、Set,这些也是接口 分好类后,下面就有它们对应的实现类,来对这些特定的要求进行算法实现。 这是我的个人理解,供同学参考
    2019-08-13 00:33:26
  • 同学,理解很棒,继续努力~祝学习愉快!
    2019-08-13 09:49:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师