Java 减流内部元件

Java 减流内部元件,java,java-stream,reduction,Java,Java Stream,Reduction,我想将一个流简化为原始流的内部元素流。如果结果也是一条流,那将是最好的。但如果有必要的话,一份清单也会起作用 一个简单的例子是: private class container { containerLevel2 element; public container(String string) { element = new containerLevel2(string); } } 公共无效测试(){

我想将一个流简化为原始流的内部元素流。如果结果也是一条流,那将是最好的。但如果有必要的话,一份清单也会起作用

一个简单的例子是:

    private class container {
        containerLevel2 element;

        public container(String string) {
            element = new containerLevel2(string);
        }

    }
公共无效测试(){
List List=Arrays.asList(新容器(“绿色”)、新容器(“黄色”)、新容器(“红色”);
>如何使用流执行以下部分?我需要类似于List result=List.stream()的内容。。。
列表结果=新建ArrayList();
用于(容器:列表){
结果.添加(container.element.info);
}
assertTrue(result.equals(Arrays.asList(“绿色”、“黄色”、“红色”)));
}

我希望你能理解我的问题。很抱歉英语不好,谢谢你的回答。

流只是一个处理概念。您不应该将对象存储在流中。所以我更喜欢集合而不是流来存储这些对象

Collection<String> result = list.stream()
    .map(c -> c.element.info)
    .collect(Collectors.toList());
Collection result=list.stream()
.map(c->c.element.info)
.collect(Collectors.toList());
更好的方法是在容器类中添加一个新方法,该方法以字符串形式返回元素信息,然后在lambda表达式中使用该方法。这是它的样子

public String getElementInfo() {
    return element.info;
}

Collection<String> result = list.stream()
    .map(container::getElementInfo)
    .collect(Collectors.toList());
公共字符串getElementInfo(){
返回element.info;
}
收集结果=list.stream()
.map(容器::getElementInfo)
.collect(Collectors.toList());

另外,你的班名应该以大写字母开头。命名API元素时请遵循标准命名约定。

流只是一个处理概念。您不应该将对象存储在流中。所以我更喜欢集合而不是流来存储这些对象

Collection<String> result = list.stream()
    .map(c -> c.element.info)
    .collect(Collectors.toList());
Collection result=list.stream()
.map(c->c.element.info)
.collect(Collectors.toList());
更好的方法是在容器类中添加一个新方法,该方法以字符串形式返回元素信息,然后在lambda表达式中使用该方法。这是它的样子

public String getElementInfo() {
    return element.info;
}

Collection<String> result = list.stream()
    .map(container::getElementInfo)
    .collect(Collectors.toList());
公共字符串getElementInfo(){
返回element.info;
}
收集结果=list.stream()
.map(容器::getElementInfo)
.collect(Collectors.toList());

另外,你的班名应该以大写字母开头。命名API元素时请遵循标准命名约定。

在使用
收集器时。toList()
最好收集到
列表
而不是
集合
,因为收集器结果类型本身就是
列表
。谢谢。我误解了map()函数。从名字上看,我认为它会产生一个。。。map:)在使用
收集器时。toList()
最好收集到
列表
而不是
集合
,因为收集器结果类型本身就是
列表
。谢谢。我误解了map()函数。从名字上看,我认为它会产生一个。。。地图:)