在集合上调用addFirst

|
Collection col = new LinkedList();
有没有办法叫
col.addFirst
?     
已邀请:
是的,如果您强制转换为
LinkedList
((LinkedList) col).addFirst(..)
但是不建议这样做,因为您并不总是知道集合的具体类型。您可以使用
instanceof
进行检查,但这不是好的面向对象的代码。如果您确实需要
LinkedList
,则需要
LinkedList
(而不是
Collection
)     
如果将变量声明为Collection,则意味着您通常计划在程序的其余部分中将此变量视为简单的Collection,而不是链接列表。使用该变量,Collection接口提供的方法对于程序的其余部分应该足够了。 如果您需要访问仅在LinkedList类中存在的特定方法,则应将变量声明为LinkedList。     
我不确定在这种情况下为什么需要使用Collection,但是,如果您使用接口java.util.Deque,它仍然可以扩展java,那么您仍然可以“对接口进行编程,而不对实现进行编程”。 util.Collection
Deque<String> deque = new LinkedList<String>();
deque.addFirst(\"Hello\");
Collection<String> collection = deque;
    
如果使用List而不是Collection,则.add()方法可用。在索引0处添加,将其放在第一个位置。
list.add(0, object)
    

要回复问题请先登录注册