Java List and ArrayList declaration



有人可以向我解释以下代码吗?就像为什么"列表"和"数组列表"是不一样?这是否意味着变量 neighborColumns 是一个 List 数据结构,它保存 Column 对象类型,但只有 List 类中的公共方法才能用于变量 neighborColumns?提前谢谢。

List<Column> neighborColumns = new ArrayList<Column>();

这段代码没问题(设计到接口(列表):-

List<Column> neighborColumns = new ArrayList<Column>();
List<Column> neighborColumns = new LinkedList<Column>();   // OK To change..

在上面的代码中,你基本上是在设计一个接口而不是实现。List是一个接口,ArrayList是一个实现它的具体类。

一个优点是,您可以在各种实现之间切换,而无需更改设计。

下面的代码是一个问题(从设计到实现(阵列列表):-

ArrayList<Column> neighborColumns = new ArrayList<Column>();
//OOPs.. Cry (Incompatible Types)
ArrayList<Column> neighborColumns = new LinkedList<Column>(); 

在这里,因为您正在设计实现..因此,您无法更改RHS上的实现。编译器会像上面一样哭泣。

因此,一般来说,您应该始终设计到接口,从而不公开实现,并且还可以获得随时更改实现的灵活性。

List是一个

接口,而ArrayList是实现该接口的特定类。

在可能的情况下,针对接口而不是特定类进行编程是一种很好的编程习惯,因为这样可以更轻松地稍后更改为使用不同的列表实现。

相关内容

最新更新