讨论/技术交流/求指点下List与Linkedlist相关的问题/
求指点下List与Linkedlist相关的问题

求指点java
我想问下

 List<TreeNode> list=new LinkedList<>();
 Linkedlist<TreeNode> list=new LinkedList<>();

这两种声明的list有啥区别呀
我有查了List和Linkedlist的区别及Linkedlist和Arraylist的区别
但是我还是不是很理解

 List<TreeNode> list=new LinkedList<>();
 Linkedlist<TreeNode> list=new LinkedList<>();

这两种声明的list有啥区别,为什么第一种声明的list调list.removeFirst()不行,而第二种声明的list调list.removeFirst可以.求指教,十分感谢

1
共 5 个回复

是的

因为 List 是一个 interface,而 LinkedList 是 implements 了 List,所以虽然 LinkedList 可以使用所有 List 的方法,但是用 List 对外只能直接使用 List 固定的方法。

Java面向对象的一种特性,多态。宽泛的讲多态可以让程序更具扩展性,具体的讲楼上兄弟说的。

说的对

这里区别是,第一行是一个List,第二行是一个LinkedList。

List是接口,所以第一种写法是用LinkedList实现的List,但你只能使用List中定义的方法,而第二种写法就是实例化一个LinkedList,你可以使用LinkedList特有的方法。

第一种写法属于底层屏蔽,只要是个List就可以,底层实现是ArrayList还是LinkedList用起来都看作是一样的