A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小白进阶之路 高级黑马   /  2018-1-31 12:08  /  732 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

集合源码中的成员内部类:
                ArrayList中有一个内部类:ListItr
                ListItr这个内部类继承Itr,实现了ListIterator接口。
                LinkedList中有一个内部类:ListItr
                ListItr这个类名和ArrayList中的一个内部类名相同。这个类同样实现了ListIterator接口。
                因为不同的使用场景ListIterator接口里面的方法的具体实现不太一样。所以它会有不同的实现类。
                但是为什么源码不用普通的类去实现,而是用内部类去实现呢?
                        ①因为ListItr内部使用了外部类的成员。而ListItr这个类的方法的具体实现需用用ArrayList的一些成员。所以这个时候我们如果把这个类写成内部类,更方便我们调用ArrayList里的成员。(内部类可以直接调用外部类的成员。)
                        ②因为ListItr这个内部类的功能和我们的外部类ArrayList是紧密相连的。所以我们把这个ListItr写成外部类的话。其实没有什么作用。因为不会有其他类还能和我们的ListItr结合起来使用。
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端

1 个回复

倒序浏览
集合常见问题部分小总结
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马