我有以下几门课:
class A {
String id;
List<B> b;
}
class B {
String id;
}
我有一个a的列表,我想将其转换为具有以下逻辑的映射:
List<A> aList;
Map<String, String> map;
for (A a:aList)
{
for (B b:aList.b)
{
map.put(b.id, a.id)
}
}
在一行流方法中做它的最好方法是什么?
谢谢Elad
您可以从A
类对象流式传输B
类的每个列表,然后将ID
组合收集到Map.Entry
对象中
Map<String,String> map = aList.stream()
.flatMap(al->al.getB()
.stream()
.map(bl-new AbstractMap.SimpleEntry<String, String>(bl.getId(), al.getId())))
.collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue));
我有V类的对象列表,我想创建一个相同V类的新对象。List中对象的一些属性在列表中是相同的,一些属性具有不同的值。我想创建新的对象V,它们具有公共属性,并且具有不同值的属性应该被求和并设置为对象V。 例如 我有如下列表。 我想要新的Sample对象,其值为 我怎样才能做到这一点?
我有这个: 我想把这个(String类型的列表)直接投射到新的(类型)上,但不知道如何?
我使用Java8和我有两个对象看起来像: Person类: 现在我想使用StreamJava8循环两个列表和比较。如果list persons中的任何对象等于persons1,我将创建新的list并设置新的值。例如:如果Person1(“1”,“F”)等于Person1(“1”,“A”),因为我使用id进行比较,我将Person1的名称设置为Person1。结果:Person(“1,”F“)并添加
我是scala和Spark的新手,我有以下大小写类A ClassCastException:Scala.Collection.Mutable.WrappDarRay$OFRef不能强制转换为java.util.List 请帮忙。
问题内容: 将a转换为a 的最佳方法是什么?只是迭代所有值并将它们插入列表中,还是我忽略了某些内容? 问题答案: 假设: