你好,我的问题与Java8非常相似:流映射同一个流中的两个属性,但由于某些原因,我无法让代码正常工作。
所以就像这个问题一样,假设我有一个班级模型
class Model {
private List<Integer> listA;
private List<Integer> listB;
private List<Integer> listC;
public List<Integer> getListA() {
return listA;
}
public List<Integer> getListB() {
return listB;
}
public List<Integer> getListC() {
return listC;
}
}
所以我想从列表中组合这些列表
myList.stream()
.flatmap(i -> Stream.of(i.getListA(), i.getListB(), i.getListC()))
.collect(Collectors.toList())
.get(0)
但是这种方法最终会返回一个空列表。我会感谢任何建议
与链接问题的不同之处在于,您有三个层次:一系列<code>模型</code>s,每个模型都有多个属性。这些属性是<code>列表</code>s,因此它们也可能包含多个元素。
现在您可以使用<code>平面图</code>两次而不是一次。
myList.stream()
.flatMap(model -> Stream.of(model.getListA(), model.getListB(), model.getListC())
.flatMap(List::stream))
.toList();
您必须用< code>Stream.concat连接这3个列表。一旦你连接了这些流(不要交叉!),将它们平面映射到< code >流
myList.stream()
.flatMap(m -> Stream.concat(Stream.concat(m.getListA().stream(),
m.getListB().stream()),
m.getListC().stream()))
.collect(Collectors.toList());
跟
List<Model> models = List.of(
new Model(Arrays.asList(1, 2, 3), Arrays.asList(4, 5, 6), Arrays.asList(7, 8, 9)),
new Model(Arrays.asList(11, 12, 13), Arrays.asList(14, 15, 16), Arrays.asList(17, 18, 19)),
new Model(Arrays.asList(21, 22, 23), Arrays.asList(24, 25, 26), Arrays.asList(27, 28, 29))
);
输出是:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29]
我有一个类具有以下签名: 我想将映射到在单个流中同时包含stringA和stringB的 或: 当然他们都不编译,但你明白了。 编辑: 示例:
对特定的持久化类,映射多次是允许的。这种情形下,你必须指定 entity name 来区别不同映射实体的对象实例。(默认情况下,实体名字和类名是相同的。) Hibernate 在操作持久化对象、编写查询条件,或者把关联映射到指定实体时,允许你指定这个 entity name(实体名字)。 <class name="Contract" table="Contracts" entity
我需要将Java转换为的实例(包括映射内容) 我应该用什么来代替来使此代码可编译?
假设我有以下工作的lambda表达式: 我想在过滤器语句之前创建一个具有2个值的流。所以我想做一个映射,但仍然保留原始值。我想实现这样的事情: 这可能与Java8流?我已经看了收集(GroupingBy()),但仍然没有成功。
问题内容: 我正在尝试建立一个PostgreSQL表,该表具有两个指向另一个表中相同主键的外键。 运行脚本时出现错误 sqlalchemy.exc.AmbiguousForeignKeysError:无法确定关系Company.stakeholder的父/子表之间的联接条件- 有多个链接表的外键路径。指定“ foreign_keys”参数,提供这些列的列表,这些列应被视为包含对父表的外键引用。 那
由于我不想多次使用流来单独收集每个属性,也不想使用来收集每个属性,是否有任何方法可以用单个流来获得上述属性。