社区
Java SE
帖子详情
ArrayList list = new ArrayList();和List list 的区别
oracleperl
2021-05-14 09:28:51
请教ArrayList<String> list = new ArrayList<String>();
和List<String> list = new ArrayList<String>();有啥区别?
谢谢
...全文
409
1
打赏
收藏
ArrayList list = new ArrayList();和List list 的区别
请教ArrayList list = new ArrayList(); 和List list = new ArrayList();有啥区别? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
NewMoons
2021-05-15
打赏
举报
回复
区别就是第一个list可以调用ArrayList类的所有公共方法和公共属性。
但第二个list只能调用List的的所有公共方法和公共属性。
ArrayList作为List接口的实现类肯定包含了List所有的方法和属性,而且有自己额外的方法和属性。
这就是面向对象编程语言的一个典型应用,多态。
子类实例可以自动转换赋值给父类对象或接口类
明明第一个定义包含了第二个定义的所有需要,为什么有时候我们又需要使用第二个方式来定义变量呢?
因为有时候我们确定用List这个接口的所有方法和属性就能搞定需求了,为了减少耦合,所以用第二个更合适。
这也是接口的意义所在,为什么叫接口?你怎么实现我不管(ArrayList、LinkedList。。。。。),实现我的接口方法就行。
虽然接口方法一样,不同的实现类会有不同的内部实现方法,比如List实际是集合概念,有的注重查询效率(ArrayList数组集合),有的注重修改效率(LinkedList链表集合),你就可以根据你的需求场景选择合适的实现类。
当然,有时候实现类有自己额外特殊实现的公共方法或属性,使用List无法调用,而需求场景确实需要某个实现类,那就用第一种定义,也无可厚非。
但绝大部分情况下,尽可能的选择第二种定义,这也是为什么使用接口的意义所在,尽可能的让实现精简,减少耦合,以提高代码的复用性!
Array
List
<
string
>
list
=
new
Array
List
<>();和
List
<
String
>
list
=
new
Array
List
<>();之间有什么
区别
【代码】
Array
List
<
string
>
list
=
new
Array
List
<>();和
List
<
String
>
list
=
new
Array
List
<>();之间有什么
区别
。
为什么在项目中使用
List
<
String
>
list
=
new
Array
List
<
String
>()而不是用
Array
List
<Object>
list
=
new
Array
List
<>()
这里的
list
和接口都是抽象,依赖的类应该依赖抽象,而不是具体实现。写成
Array
List
<Object>
list
=
new
Array
List
<>(),那么依赖他的方法参数只能是
Array
List
,不能是Linked
List
,如果真的要修改具体实现就需要改多行代码,代码维护复杂。软件设计6大原则中的依赖倒置原则,高层模块不应该依赖低层模块,两者都应该依赖其抽象。
Java泛型初始化
Array
List
<
String
>()和
Array
List
<>()的
区别
本文对比了Java中两种泛型集合初始化方式:显式泛型初始化(
Array
List
<
String
>())和钻石操作符初始化(
Array
List
<>())。显式方式适用于Java 5+且兼容复杂泛型场景,而钻石操作符(Java 7+)更简洁且类型安全。两种方式运行时无差异,但钻石操作符在匿名内部类(Java 9前)和变量分离初始化时有局限。最佳实践建议优先使用钻石操作符,仅在旧代码兼容或复杂泛型时采用显式声明。
java匿名内部类的使用 (比如
new
对象后的大括号,
List
<
String
>
list
=
new
Array
List
<
String
>() { { }}这用用法等)
今天在看别人的代码的时候,发现有 Yyy uu=
new
Xxx(){ public void aaa(){ //这里写代码。。。 } } 这种形式,以前偶尔看见过,也知道是匿名内部类的情况,但一直没有仔细去研究,今天特意花点时间去写了点很简单也易懂的例子,初学时需要的技术不在于复杂程度,能让人看得懂的代码才是好代码,希望能帮助大家: 一、例子1::匿名写一个接口实现类。看下我这个例子(直接cop...
List
<
String
>
list
=
new
Array
List
<
String
>();
有关java
List
<
String
>
list
的使用
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章