我有以下清单:
可观察列表
我知道,如果我想有排序列表,我可以写
public ObservableList<String> getBooks() {
return Books;
}
现在,我的问题可能非常荒谬,但……有没有一种方法可以实现与上述流相同的结果?差不多
Books
.stream()
.sorted();
但是让流返回给我一个排序的可观察列表?
我刚刚开始学习流,还不太了解它,所以我想知道这样的事情是否可能。
如果您想对列表进行排序,则不需要流,只需调用
Collections.sort(books);
如果要返回新的已排序的可观察列表
ObservableList<Book> sortedBooks = books.stream()
.sorted()
.collect(Collectors.toList(FXCollections::observableArrayList));
您需要使用< code >收集器将流转换回列表。如果你不在乎它是什么类型的列表,有一个内置的收集器:
getBooks().stream().sorted().collect(Collectors.toList())
如果它需要一个可观察的列表,你需要发明你自己的收集器:
getBooks().stream().sorted
.collect(ObservableList::new, ObservableList::add, ObservableList::addAll);
旁注:Books
是变量的错误命名约定;使用书籍
。
这确实是可能的,使用Collector
s。甚至是收藏家
。假设观察列表
是某种类型的Collection
,您可以执行以下操作:
ObservableList<String> hereYouGo = Books.stream()
.sorted()
.collect(Collectors.toCollection(ObservableList::new));
其中< code>ObservableList::new是收集器的空< code>ObservableList的提供者。如果你的类不是这样工作的,就改变它。
在Java 8中,我越来越多地用替换返回值。 所以我曾经有: 我现在使用: 我对此的论点是: 它强制执行基础列表的不变性。 它隐藏了存在基础列表的事实。之后可以将其更改为集合或其他结构,而无需更改方法签名 它很好地封装了该方法的用户希望对项进行处理,而不是对列表进行处理 如果需要,它可以在以后进行简单的并行化 事实上,现在,在我的代码中,返回<code>列表 显然,其中一些可以通过不可变集合来实现
如何将流收集到我指定的子类型列表中? 换句话说,我希望这个测试通过。我应该在注释行上执行哪些操作才能将流转换为 实例?
问题内容: 我想知道如何对方法返回List的JSON数组,例如: 我想知道如何在我的方法中接收List参数类型 我已经阅读了有关JaxbContext的文章,我了解它如何为我提供帮助。 问题答案: 使用JAXB时,支持两种类型。第一个是元素列表,第二个是元素定界字符串(“常规” XML值或属性,使用某些定界符将其解析为列表)。第一个似乎是您想要的(“数组”)。 有关参考,请参见:http : //
我无法解决这个问题。 我想用Java流来解决这个问题: 有什么解决办法吗?谢谢!
我试图重写在子类中返回type as list的方法,如下例所示,由于泛型问题,我无法在子类中执行此操作。我无法更改我的超类代码,因此如何解决该问题?任何人都可以指引我。。。非常感谢。 无法更新的超类: 子类:
下面的代码生成一个 空指针异常 由于此人在本例中没有任何,因此我想将返回到 尝试添加仍然会产生相同的错误。 这应该如何处理?如果条件,有没有办法处理同一行代码而不是再检查一行?