集合2-1的问题
1、为什么会出现两个总接口Collection和Map,莫名其妙的。。
2、课程里说,ArrayList底层是由数组实现的,说明ArrayList约等于数组吗?
3、课程里说,ArrayList的元素可以为null,就是说传入的元素可以只有引用没有对象,如:Cat one;是这意思吗?
4、Collection接口里有contains方法,参数是Object的对象,还有remove方法的参数也是Obvject类的对象。老师我不太懂,传入的是非Object类的对象也不报错,为什么呢?
5、Collection里的equals方法的作用是什么?
6、Collection里的toArray()方法,能把集合转换成数组,说明集合其实就是等于数组吗?
7、List接口继承了Collection和Iterable两个接口,说明接口不像子类继承父类一样,只有唯一吗?
8、集合的接口和类都在java.util包里吗?
9、集合为什么这么复杂,有这么多的接口?包装类和字符串类就很简洁,也好理解。
10、ArrayList的第二个构造方法:ArrayList(Collection<? extends E>c)这怎么理解,看都看不懂啊。
11、ArrayList的无参构造方法默认给10个空间,这是什么意思?
正在回答 回答被采纳积分+1
你好!分别回答你的几个问题:
1、关于null,你的理解是对的
2、关于方法参数是Object问题,因为Object是所有类的父类,这样才能接收到所有的子类对象。这个跟之前同学问的方法参数是Animal,传入Dog类的对象,是一个问题。是向上转型。
3、equals()方法是比较两个对象的内容是否相等
4、现在的阶段看不懂源码也没关系,老师举例只是想说明一下是进行了数据拷贝。
5、是的,implements是类实现接口时使用的,接口之间是继承
6、这里老师说的子类,其实是指实现Collection的类。
在代码中注意new ArrayList(list)中的参数list,它是ArrayList对象,而ArrayList是Collection的一个实现类,所以这就是ArrayList的第二个构造方法的使用。把一个Collection的实现类的对象作为方法参数。也就是通过一个集合去创建另一个集合。
7、是的,ArrayList的底层是数组,这个老师在讲ArrayList的时候介绍过。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
同学你好,1、java中集合总体上来说是分为Collection和Map两种类型的,比如
在学习了后面的set集合和map集合后,就会明白,这是集合的大分类,就好像人类分为男生和女生两类!
2、ArrayList底层是由数组实现,并不是说他就是约等于数组,它与其他集合一样,也是可以自动扩容、存放不同的类型,它只是在底层实现的时候是使用了数组的形式来实现!
3、Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,比如Cat one=null! 这就是一个null值,它可以存入集合中,占据一个位置,但是并没有引用指向它!
4、我们在课程Java继承下的章节中讲述了 Object是所有类的根类,是所有类的父类,所以只要是一个类,它就一定可以说它是一个Object类型的类,就好比人类表示所有的人,那无论是中国人、美国人、印度人都是继承的人类这个父类,都可以说是一个人!
所以说这里传入的是非Object类的对象是不存在的,传入的肯定是一个Object类或者是它的子类!
5、Collection里的equals方法的作用,就是判断当前集合collection 与指定对象是否相等!
6、Collection里的toArray()方法,是将这个集合中的数据全都拷贝存入一个数组里返回!并不是把集合转换成数组!比如:在底层中是拷贝了所有的数据!
这里我们知道这个方法的作用是将集合中所有数据返回到一个数组中就可以了哟!
7、首先一个类只能extends一个父类,但可以implements多个接口。一个接口可以同时extends多个接口,却不能implements任何接口。因而,Java中的接口是支持多继承的。
8、util包下有很多的接口和类,集合的接口和类也在util包下哟
9、不同的集合结构不同,适合于不同的场景,所以会比较多,集合实际也很多,非常重要。只要多听多练,掌握了常用的方法,也就不难了
10、ArrayList(Collection<? extends E> c)
是指在创建ArrayList对象时,可以传入一个Collection子类的对象。然后利用传入的集合对象中的数据,去创建ArrayList对象。
在li集合中可以直接存入一个ArrayList集合!
11、集合与数组最大的区别是集合能够自动扩容,这里默认给10个空间,就是这个集合的初始空间为10,当这10个空间用完后,会自动扩容,增加长度!
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星