Java 是否将N个项目的集合转换为N个每个项目1个的集合?

Java 是否将N个项目的集合转换为N个每个项目1个的集合?,java,Java,在Java中,有没有一种简单/方便的方法可以将N个项的集合转换为N个集合,每个集合有一个项?我的意思是,除了手动检查集合中的每个项目并将其复制到新集合之外。这里有一种方法,可以使用Java 8中的一条语句来完成l1是一些集合,结果是一个列表,其中每个数组列表包含集合中的一个元素 List<ArrayList<T>> l2 = l1.stream().map(x -> new ArrayList<>(Arrays.asList(x))).collect(C

在Java中,有没有一种简单/方便的方法可以将N个项的集合转换为N个集合,每个集合有一个项?我的意思是,除了手动检查集合中的每个项目并将其复制到新集合之外。

这里有一种方法,可以使用Java 8中的一条语句来完成
l1
是一些
集合
,结果是一个
列表
,其中每个
数组列表
包含集合中的一个元素

List<ArrayList<T>> l2 = l1.stream().map(x -> new ArrayList<>(Arrays.asList(x))).collect(Collectors.toList());
List l2=l1.stream().map(x->newarraylist(Arrays.asList(x)).collect(Collectors.toList());
细分如下:

  • 创建集合中所有元素的
  • 将每个元素映射到包含该元素的
    ArrayList
  • 将生成的
    ArrayList
    s收集到
    列表中

    • 如果你愿意使用番石榴,你可以有一个>,如下所示:

      public final class ItemToListFunction<E> implements Function<E, List<E>>
      {
          public List<E> apply(E input)
          {
              //if it does not need to be mutable
              return Collections.singletonList(input);
      
              //if it does need to be mutable
              final List<E> list = new ArrayList<E>();
              list.add(input);
              return list;
          }
      }
      
      public final类ItemToListFunction实现函数
      {
      公共列表应用(电子输入)
      {
      //如果它不需要是可变的
      返回集合。单音列表(输入);
      //如果它确实需要是可变的
      最终列表=新的ArrayList();
      列表。添加(输入);
      退货清单;
      }
      }
      
      然后可以使用或中的变换方法之一。
      这种方法的优点是,内部列表的创建被推迟到元素的实际迭代。

      Sure。实现并具有一个方法。所有实现都提供一个无参数构造函数。完成任务似乎不需要其他任何东西。它有什么实际用途吗?好吧,因为你的N个集合必须放在某种类型的集合中,看起来你可以看看你拥有什么,然后声明“完成!”这个问题产生了一个问题。如果OP不知道的话:这样的代码只能在Java 8中工作。我仍然坚持使用Java 6。但是,很高兴了解Java8中的新功能。谢谢。我只能使用标准的Java6结构。但很高兴知道其他选择。谢谢