要设置的Java泛型集合
这让人很困惑,可能会有点困惑!对不起,如果解释不好的话。我正在使用集合练习Java流。我有一个自定义类型要设置的Java泛型集合,java,java-stream,Java,Java Stream,这让人很困惑,可能会有点困惑!对不起,如果解释不好的话。我正在使用集合练习Java流。我有一个自定义类型PartiallyOrderedSet初始化如下: PartiallyOrderedSet-four=生成集(新整数[]{1,2,3,4}) 在内部,它存储泛型E的集合,因此makeSet可以采用任何类型的E 为了创建PartiallyOrderedSet,我们使用如下makeSet,例如整数(尽管我们可以使用makeSet的多个重载将其转换为任何类型): 我想将它转换回javaSet对象,以
PartiallyOrderedSet
初始化如下:
PartiallyOrderedSet-four=生成集(新整数[]{1,2,3,4})
在内部,它存储泛型E的集合,因此makeSet
可以采用任何类型的E
为了创建PartiallyOrderedSet,我们使用如下makeSet,例如整数(尽管我们可以使用makeSet的多个重载将其转换为任何类型):
我想将它转换回javaSet
对象,以便打印元素集合的内部元素。我想使用Java流来实现这一点,尽管我完全迷路了。谁能帮帮忙吗
例如,输出应如下所示:
{1,2,3,4}
对于PartiallyOrderedSet-four=makeSet(新整数[]{1,2,3,4}) 您可以尝试:-
设置myset=elements.stream().collect(Collectors.toSet())
但是,代码未经测试。应该是这样的,您可以找到有关泛型的信息
谢谢你的回复。作为参考,它返回
[src.Test$Int@42f30e0a]
,它是内部对象。(src是包装内部测试)。我不确定是否需要再次转换它或其他什么。我还认为collect可能会返回一个列表?不确定。我认为它应该有{
括号。@user3236779请看:您是否尝试调用myset.tostring()什么是Int
?为什么创建这样一个类?Integer
对您来说不够好吗?当基础数据是集合时,为什么调用类partiallyordedset
(在本例中,实际上是List
),换句话说,既不是有序的也不是集合?除此之外,问题出在哪里还不清楚。您已经知道如何使用流进行转换。使用elements.stream()
从集合而不是数组创建流是一个挑战吗?还是使用collect(Collectors.toSet())
要创建集而不是列表
?
private static PartiallyOrderedSet<Int> makeSet(Integer[] elts) {
return new PartiallyOrderedSet<Int>(
Arrays.asList(elts).stream().map(Int::new).collect(Collectors.toList()));
}
private Collection<E> elements;
private static <T> PartiallyOrderedSet<T> makeSet(T[] elts) {
return new PartiallyOrderedSet<T>(
Arrays.asList(elts).stream().map(Int::new).collect(Collectors.toList()));
}
Set a = makeSet(new Integer[] {1,2,3,4});