Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用LinkedHashSet的Java复合设计模式_Java_Design Patterns_Jaxb_Set_Composite - Fatal编程技术网

使用LinkedHashSet的Java复合设计模式

使用LinkedHashSet的Java复合设计模式,java,design-patterns,jaxb,set,composite,Java,Design Patterns,Jaxb,Set,Composite,我的目标是使用复合设计模式创建一个对象,该模式可以使用JAXB封送到XML中。此外,在我的例子中,复合组件似乎希望使用集合(例如LinkedHashSet)来确保不存储重复的元素。然而,我只能找到使用ArrayList的复合设计模式的示例(见下文) 在复合设计模式中使用LinkedHashSet是不可能的或不可取的,是否有一个概念上的原因。否则,有人能解释一下如何使用LinkedHashSet实现复合设计模式吗?我假设这需要在LinkedHashSet上使用迭代器,但我还没有找到一种方法来为

我的目标是使用复合设计模式创建一个对象,该模式可以使用JAXB封送到XML中。此外,在我的例子中,复合组件似乎希望使用集合(例如LinkedHashSet)来确保不存储重复的元素。然而,我只能找到使用ArrayList的复合设计模式的示例(见下文)


在复合设计模式中使用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并不重要。。。。