当前位置: 首页 > 知识库问答 >
问题:

如何使用返回我自己的列表实现的流收集到列表?[重复]

周辉
2023-03-14

如何将流收集到我指定的子类型列表中?

换句话说,我希望这个测试通过。我应该在注释行上执行哪些操作才能将流转换为 MyList 实例?

import org.junit.*;
import java.util.*;
import static java.util.stream.Collectors.*;
import static junit.framework.Assert.*;

@Test
public void collectUsingDifferentListType() {
    List<String> aList = new ArrayList<>();
    aList.add("A");
    aList.add("B");
    List<String> list1 = aList.stream().collect(toList());
    MyList<String> list2 = aList.stream().collect(toList(MyList::new));  // this doesn't exist, but I wish it did

    assertEquals(aList, list1);
    assertEquals(ArrayList.class, list1.getClass());
    assertEquals(aList, list2);
    assertEquals(MyList.class, list1.getClass());
}

共有1个答案

钱季
2023-03-14

假设< code>MyList类型是< code >集合,则可以使用< code > collectors . to Collection :

MyList<String> list2 = aList.stream().collect(toCollection(MyList::new));
 类似资料: