使用LinkedHashSet的Java复合设计模式
我的目标是使用复合设计模式创建一个对象,该模式可以使用JAXB封送到XML中。此外,在我的例子中,复合组件似乎希望使用集合(例如LinkedHashSet)来确保不存储重复的元素。然而,我只能找到使用ArrayList的复合设计模式的示例(见下文)使用LinkedHashSet的Java复合设计模式,java,design-patterns,jaxb,set,composite,Java,Design Patterns,Jaxb,Set,Composite,我的目标是使用复合设计模式创建一个对象,该模式可以使用JAXB封送到XML中。此外,在我的例子中,复合组件似乎希望使用集合(例如LinkedHashSet)来确保不存储重复的元素。然而,我只能找到使用ArrayList的复合设计模式的示例(见下文) 在复合设计模式中使用LinkedHashSet是不可能的或不可取的,是否有一个概念上的原因。否则,有人能解释一下如何使用LinkedHashSet实现复合设计模式吗?我假设这需要在LinkedHashSet上使用迭代器,但我还没有找到一种方法来为
在复合设计模式中使用LinkedHashSet是不可能的或不可取的,是否有一个概念上的原因。否则,有人能解释一下如何使用LinkedHashSet实现复合设计模式吗?我假设这需要在LinkedHashSet上使用迭代器,但我还没有找到一种方法来为ArrayList的get(int I)功能提供LinkedHashSet的.next()功能。您可以通过创建迭代器并调用
next()
I
次,从迭代器中获取第I个元素。但是你可能会发现仅仅使用就更容易了!包含列表上的和添加(或将内容添加到集合中,然后复制到列表中)。复合类背后的思想是作为子类(树)的容器,因此实现了add、remove和getChild方法。孩子的容器可以是Java集合或任何其他容器,所以答案是“是”,可以使用LinkedHashSet。复合的另一个例子:。只是扮演魔鬼代言人:据我所知,在原始设计模式中,没有重复元素(集合)不是一个假设。当然,有一个例子可能有(逻辑上)重复的元素,但在您的应用程序中可能没有。模式组合的目的是处理一组对象,类似于处理单个对象。这是一种通用模式,与您使用的集合对象类型没有直接关系。因此,ArrayList或LinkedHashSet无关紧要……您可以通过创建迭代器并调用next()
i
次,从迭代器中获取第i个元素。但是你可能会发现仅仅使用就更容易了!包含列表上的和添加(或将内容添加到集合中,然后复制到列表中)。复合类背后的思想是作为子类(树)的容器,因此实现了add、remove和getChild方法。孩子的容器可以是Java集合或任何其他容器,所以答案是“是”,可以使用LinkedHashSet。复合的另一个例子:。只是扮演魔鬼代言人:据我所知,在原始设计模式中,没有重复元素(集合)不是一个假设。当然,有一个例子可能有(逻辑上)重复的元素,但在您的应用程序中可能没有。模式组合的目的是处理一组对象,类似于处理单个对象。这是一种通用模式,与您使用的集合对象类型没有直接关系。所以ArrayList或LinkedHashSet并不重要。。。。