Java 使用属性列表、HashMap或模态类数组时,哪种方法更有效?
我有一个属性列表,如下所示:Java 使用属性列表、HashMap或模态类数组时,哪种方法更有效?,java,performance,Java,Performance,我有一个属性列表,如下所示: 钥匙 项目1 项目2 项目3 这是一个小组,我有很多类似的小组,比如 1: 2: 3: ........... key_1 key_2 key_3 ........... item1_1 item1_2 item1_3 ........... item2_1 item2_2 item2_3 ........... item3_1 item3_2 item3_3 ..........
- 钥匙
- 项目1
- 项目2
- 项目3
1: 2: 3: ...........
key_1 key_2 key_3 ...........
item1_1 item1_2 item1_3 ...........
item2_1 item2_2 item2_3 ...........
item3_1 item3_2 item3_3 ...........
我需要做一些操作,遍历每个。以下哪一项在性能和空间方面更好:
方法1(HashMap):ArrayList(item1,item2,item3)<br>
HashMap(key , ArrayList) // For each entry
ModelClass
{
key
item1
item2
item3
}[]
ModelClass array
哪种方法对性能有好处?选择。更具可扩展性、可读性和可维护性。选择。更具可扩展性、可读性和可维护性。在效率成为一个问题之前(或者从一开始就很明显这是一个重大的设计决策),我不会太担心效率
我喜欢正确建模的对象(例如上面的
ModelClass
)。通过引入一个新对象,您可以正确地封装属性和遍历这些属性的机制,而不是创建集合集合并将该结构公开给迭代过程。您的模型类可能包含(比如)一个属性列表,但这是一个不必公开的实现决策。在它成为一个问题之前(或者从一开始就很明显这是一个主要的设计决策),我不会太担心效率
我喜欢正确建模的对象(例如上面的ModelClass
)。通过引入一个新对象,您可以正确地封装属性和遍历这些属性的机制,而不是创建集合集合并将该结构公开给迭代过程。您的模型类可能包含(比如)一个属性列表,但这是一个不必公开的实现决策
哪种方法对性能有好处
这取决于你用它做什么。如果您寻找一个特定的密钥,映射将更加有效。如果您总是遍历整个结构,那么数组可能会工作得更好(但使用起来更复杂,可能不值得付出额外的代价)
请注意,您也可以使用而不是映射
哪种方法对性能有好处
这取决于你用它做什么。如果您寻找一个特定的密钥,映射将更加有效。如果您总是遍历整个结构,那么数组可能会工作得更好(但使用起来更复杂,可能不值得付出额外的代价)
请注意,您也可以使用而不是映射