Java 需要创建集合实例的建议吗
所以我发现Java 需要创建集合实例的建议吗,java,collections,Java,Collections,所以我发现Collection作为接口有很多子接口和子类。一件常见的事情是使用接口而不是使用实际的类,这允许灵活性: List<Interger> L1 = new ArrayList<>(); 然而,有趣的是,LinkedList正在实现收集,列表,队列,Deque 那么,共同使用LinkedList的最佳方案是什么 List<> L1 = new LinkedList<>(); Queue<> Q1 = new LinkedLis
Collection
作为接口
有很多子接口和子类。一件常见的事情是使用接口而不是使用实际的类,这允许灵活性:
List<Interger> L1 = new ArrayList<>();
然而,有趣的是,LinkedList
正在实现收集
,列表
,队列
,Deque
那么,共同使用LinkedList
的最佳方案是什么
List<> L1 = new LinkedList<>();
Queue<> Q1 = new LinkedList<>();
Deque<> D1 = new LinkedList<>();
List L1=新的LinkedList();
队列Q1=新的LinkedList();
Deque D1=新的LinkedList();
列表
,那么它似乎没有必要,因为我可以
列表
来自数组列表
类
高一级的接口
,在本例中,是Deque
而不是队列
Queue
和Deque
没有实现List
,但是LinkedList
实现了。我不明白为什么会这样
谢谢,根据组件应该依赖于抽象。因此,首先您需要选择最符合您需要的抽象(例如接口或抽象类)。然后选择具体的实施
没有适用于所有情况的最佳解决方案。这里没有“最佳”解决方案。您需要使用什么样的功能?您是否需要在
List
或Queue
或Deque
中定义的那些功能?因为您可以有Queue
和Deque
的实现,它们不是列表,例如,PriorityQueue
。您应该选择一个声明的类型来满足您对对象的所有需求。通常,最通用的类型。如果你不得不沮丧,那么你的选择是错误的(在这种情况下,你认为从更一般的类型中获得的任何灵活性都是虚幻的)。@JohnBollinger谢谢!永远避免沮丧!但是你会说通常人们会选择ArrayList
上面的LinkedList
来制作列表
?@code\u Control\u jxie0755查看此处以了解更多详细信息@Ruslan谢谢,非常有用!
List<> L1 = new LinkedList<>();
Queue<> Q1 = new LinkedList<>();
Deque<> D1 = new LinkedList<>();