2012-12-02 75 views
1

这是我的代码:需要一些澄清队列和链表实现

/* 
private Queue<Card> cards = new LinkedList<Card>(); 

*/ 

我使用的是队列和链表处理的黑杰克一副扑克牌。

现在,我的理解是队列持有卡,并且LinkedList授予访问Queue,对吗?

如果不是,有人可以给我一个上述代码做的分解吗?

回答

3

您没有链接列表一个队列。类LinkedList<E>实现接口Queue<E>。您正在创建链接列表,但随后将其用作队列。

+0

太好了。非常感谢你。所以这意味着我可以使用与队列相关的方法,如“添加”和“删除”是否正确? – edxyz

+0

@edxyz:是的,您可以使用'Queue'上的方法。也可以通过转换来访问'LinkedList'上的方法,但是您应该避免这样做,因为它会将变量声明为'Queue '。 –

0

现在,我的理解是,队列持有卡,链表授予访问队列,正确吗?

Queue是一个接口(抽象,一种方法来定义合同),而LinkedList是接口的实现。换句话说,它很难履行合同。

在这种特殊情况下,Queue是一个非常受限制的接口,它只公开了LinkedList的几个可能的操作。

现实生活中的例子:银行是一个拥有员工,财务和办公室的机构。互联网是您访问银行的一种方式,提供一些界面和功能。当使用移动应用程序或通过电话与银行顾问交谈时,您仍在使用同一家银行,但使用的界面不同。

0

Queue是一个接口,使您可以与队列中的底层对象LinkedList进行交互。所以你不能通过index等方法调用方法来获取对象。所以Queue削减LinkedList的功能,你不需要时使用队列机制。