用于番石榴的Java 8收集器';s ImmutableListMultimap<;字符串,T>;

用于番石榴的Java 8收集器';s ImmutableListMultimap<;字符串,T>;,java,java-8,guava,collectors,Java,Java 8,Guava,Collectors,正在寻找一种简单的方法来收集键和值的集合,这些值包含字段-String和List到ImmutableListMultimap? 试着做一些像 Collector.of( ImmutableListMultimap.Builder::new, ImmutableListMultimap.Builder<String,List<T>>::putAll, (b1, b2) -> b1.putAll(b2.bui

正在寻找一种简单的方法来收集
键和值的集合,这些值包含字段-String和List
ImmutableListMultimap
? 试着做一些像

 Collector.of(
          ImmutableListMultimap.Builder::new,
          ImmutableListMultimap.Builder<String,List<T>>::putAll,
          (b1, b2) -> b1.putAll(b2.build()),
          (builder) -> builder.build());

不确定在
KeyAndValues
上可用的方法,但是这个如何

  public static <T> Collector<KeyAndValues<T>,
                              ImmutableListMultimap.Builder<String, T>, 
                              ImmutableListMultimap<String, T>> toImmutableMultimap()
  {
    return Collector.of(
        ImmutableListMultimap.Builder::new,
        (b, kav) -> b.putAll(kav.getKey(), kav.getValues()),
        (builder1, builder2) -> builder1.putAll(builder2.build()),
        (builder) -> builder.build());
  }
公共静态收集器toImmutableMultimap()
{
返回收集器(
ImmutableListMultimap.Builder::新建,
(b,kav)->b.putAll(kav.getKey(),kav.getValues()),
(builder1,builder2)->builder1.putAll(builder2.build()),
(builder)->builder.build());
}
或者,如果您希望隐藏累加器的详细信息,可以使用以下方法:

public static <T> Collector<KeyAndValues<T>,
                            ?,
                            ImmutableListMultimap<String, T>> toImmutableMultimap()
{
  return Collector.of(
    ImmutableListMultimap.Builder<String, T>::new,
    (b, kav) -> b.putAll(kav.getKey(), kav.getValues()),
    (builder1, builder2) -> builder1.putAll(builder2.build()),
    (builder) -> builder.build());
}
公共静态收集器toImmutableMultimap()
{
返回收集器(
ImmutableListMultimap.Builder::新建,
(b,kav)->b.putAll(kav.getKey(),kav.getValues()),
(builder1,builder2)->builder1.putAll(builder2.build()),
(builder)->builder.build());
}

不确定
KeyAndValues
上可用的方法,但是这个如何

  public static <T> Collector<KeyAndValues<T>,
                              ImmutableListMultimap.Builder<String, T>, 
                              ImmutableListMultimap<String, T>> toImmutableMultimap()
  {
    return Collector.of(
        ImmutableListMultimap.Builder::new,
        (b, kav) -> b.putAll(kav.getKey(), kav.getValues()),
        (builder1, builder2) -> builder1.putAll(builder2.build()),
        (builder) -> builder.build());
  }
公共静态收集器toImmutableMultimap()
{
返回收集器(
ImmutableListMultimap.Builder::新建,
(b,kav)->b.putAll(kav.getKey(),kav.getValues()),
(builder1,builder2)->builder1.putAll(builder2.build()),
(builder)->builder.build());
}
或者,如果您希望隐藏累加器的详细信息,可以使用以下方法:

public static <T> Collector<KeyAndValues<T>,
                            ?,
                            ImmutableListMultimap<String, T>> toImmutableMultimap()
{
  return Collector.of(
    ImmutableListMultimap.Builder<String, T>::new,
    (b, kav) -> b.putAll(kav.getKey(), kav.getValues()),
    (builder1, builder2) -> builder1.putAll(builder2.build()),
    (builder) -> builder.build());
}
公共静态收集器toImmutableMultimap()
{
返回收集器(
ImmutableListMultimap.Builder::新建,
(b,kav)->b.putAll(kav.getKey(),kav.getValues()),
(builder1,builder2)->builder1.putAll(builder2.build()),
(builder)->builder.build());
}

什么是
KeyToValues
?添加了KeyAndValues类。@Holger:不起作用,获取编译器错误:类型CollectorOh的(ImmutableListMultimap.Builder::new,ImmutableListMultimap.Builder::putAll,(b1,b2)->{},(Builder)->{}方法没有定义。我很困惑,因为你说组合器有问题,而累加器不起作用。可能与
KeyToValues
重复?添加了KeyAndValues类。@Holger:不起作用,获取编译器错误:方法(ImmutableListMultimap.Builder::new,ImmutableListMultimap.Builder::putAll,(b1,b2)->{},(生成器)->{}对于CollectorOh类型是未定义的。我很困惑,因为你说你的组合器有问题,而累加器不工作。可能是重复的