How to decide which collection should be used from List Set?
本问题已经有最佳答案,请猛点这里访问。
我想知道何时使用Set和List.On应该决定哪个基础。例如,当我们处理订单应用程序时,我应该使用什么?
列出any = new ArrayList <>();
要么
设置any = new HashSet();
或LinkedList。
这一切都取决于您当前的要求
例如,考虑一些重要的观点
如果要以与插入元素相同的方式访问元素,则应使用
如果元素包含重复项,则使用
至于
-
LinkedList 很慢,因为它们只允许顺序访问。但是如果你的元素大小经常变化它们会很好,而如果元素的大小是固定的,那么你应该使用ArrayList 因为它们允许快速随机读取访问,所以你可以在恒定时间内获取任何元素。 -
但是,当您需要大型删除操作时,
ArrayList 并不好,因为从任何地方添加或删除,但最终需要将所有后面的元素移位。 -
当你必须在中间插入任何东西时,
ArrayList 不被认为是好的,因为如果你想在中间插入一个新元素(并保持所有元素的顺序相同),那么你将不得不在之后移动所有内容找到元素的位置,而LinkedList 中的这种操作只需要更改一些引用。
查看几个数据结构的功能,并根据您的要求,您可以决定在哪里使用哪种数据结构。
另见:
- 何时使用LinkedList over ArrayList?
- Set和List有什么区别?
- 我应该使用什么Java Collection?
- 在ArrayList和LinkedList的中间插入