加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 将流应用于流

发布时间:2020-12-15 08:27:34 所属栏目:Java 来源:网络整理
导读:我正在学习如何在 Java中使用流.我有一个文件,其中包含一些我想在某些数据结构中加载的信息,例如Set. 我写了一个函数来解析每一行. private Food parseFoodLine(String line){ String[] items = line.split("|"); Food food = #Parsing done here. return fo
我正在学习如何在 Java中使用流.我有一个文件,其中包含一些我想在某些数据结构中加载的信息,例如Set.

我写了一个函数来解析每一行.

private Food parseFoodLine(String line){
    String[] items = line.split("|");
    Food food = #Parsing done here. 
    return food;
}

但是我如何通过该方法放置每一行?

private Set<Food> loadFood(){
    Set<Food> food = new HashSet<>();
    try (Stream<String> stream = Files.lines(Paths.get("myFile"))) {
        stream.forEach(parseFoodLine());
    } catch (IOException e) {
        System.err.println("Error parsing file");
    }
}

我知道我应该做“stream.forEach(food :: add)”但是如何从我的文件中获取食物对象?

解决方法

您可以映射Stream< String>的元素.到Food实例(通过你的parseFoodLine方法),他们使用collect将它们收集到一个Set中:

food = stream.map(Food::parseFoodLine).collect(Collectors.toSet());

请注意,您的Food类应正确覆盖equals和hashCode,以便将Food实例正确存储在HashSet中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读