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

在Java8流中,如何将两个字符串列表合并为一个没有重复列表

应向晨
2023-03-14

在这里,我有两个项目列表,我想要合并到一个列表中,并在保存到数据库之前删除重复项。但是我得到一个错误,“非静态方法不能从静态上下文引用”。虽然我知道该消息的含义,但我不知道如何在Java8流的上下文中解决它。拜托,救命。

 public void addItems(String shopId, List<String>itemsToAdd, String adminId) {
    final Shop  shop = shopSrevice.getShopById(shopId);
    final Optional<List<String>> currentItems= shop.getCurrentItems();
    if (currentItems.isPresent()){
        List<String> allItems = Stream.of(currentItems,itemsToAdd)
                .flatMap(Collection::stream)
                .collect(Collectors.toList());

下面是错误消息的快照

共有1个答案

胡浩瀚
2023-03-14

问题是,您正在尝试创建一个可选列表和一个列表的流。对currentItems调用get()可以解决此错误,并且不应该是问题,因为您已经在检查它是否存在。

 类似资料:
  • 问题内容: 我有 我想要 问题答案:

  • 我对任何编程都非常陌生,所以请原谅我的无知,因为我不知道如何做一些看起来很简单的事情。 我所要做的就是获取任何字符串数组(称之为名称),比如: 并将其从列表中删除,并将其转换为字符串: 我似乎无法理解这一点,也找不到类似的帖子。

  • 如何使用stream转换下面的代码而不使用for each循环。 getAllSubjects()返回所有列表,每个主题都有。所有列表应合并为。 需要从中获取 对象模型:

  • 问题内容: 例如,如果我有一个元组列表 如何解开元组并将其重新格式化为一个列表 我认为这也与功能有关,但是我真的不知道该怎么做。请赐教。 问题答案: b = [i for sub in a for i in sub] 这样就可以了。

  • 我一直在为我的服务器做一个非常简单的bukkit插件,只是为了个人使用。我做了一个叫播放器的命令,当某人有权限(broadcaster.players)时,它会显示服务器播放器的列表。我还想让它在游戏中显示玩家的游戏模式。但是我不知道如何把它们放在一起。 我的代码: 如果它说,我想在同一行上显示游戏模式。 当然,这从来没有工作过,我不知道该怎么办,有人能给我建议我能做什么吗,我的代码很混乱,但我是

  • 假设我有员工数据列表。 使用上面的empList,如何获得两个不同的列表,如年龄