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

如何在java中使用stream()迭代列表时向string追加值

华森
2023-03-14

我需要在Java8中迭代一个列表并将值追加到StringBuilder中。我已经编写了下面的代码,它正在工作,但是我需要使用map/stream等来迭代列表,而不是使用forEach循环。

StringBuilder sb=new StringBuilder();
list.stream().forEach(r->{
sb.append("t1.").append(r).append("=").append("t2.").append(r).append(" and ");
}

我有另一个列表和地图,如果元素列表与地图的键匹配,我需要替换一个字符串。

List<String> list=Arrays.asList("key1", "key2","key3","key4");
        Map<String, String> map1  = new HashMap<String, String>() ;
        map1.put("key1", "value1");
        map1.put("key2", "value2");
        map1.put("key11", "value11");
        var classVar=new Object() {
            String sb="";
        };
        classVar.sb="Select * from table1 where key1='apple' and key2='mango'";

        list.stream().forEach (e->{
            map1.forEach((k,v)->{
                if(e.equalsIgnoreCase(k)){
                    classVar.sb=classVar.sb.replaceAll(k,v);
                }
            });
        });
   

如何使用Java8的map()/stream()等功能而不是forEach循环迭代相同的代码?

共有1个答案

夹谷成仁
2023-03-14

Id流化列表,映射每个元素以添加相等表达式,然后用“and”字符串将它们连接起来。这也会防止你在结尾处得到那些看似无意的多余的“和”:

String result = 
    list.stream().map(r -> "t1." + r + "=t2." + r).collect(Collectors.joining(" and "));
 类似资料:
  • 我有一个地图,上面有键和值和打印。我需要为这些EMPID添加标签。但当我使用stream API时,最终的结果是很糟糕的。

  • 使用JSF 2.0,我需要显示一个表,其中每一行都包含一个打开弹出窗口的链接。我有两种型号:

  • 我有以下LinkedHashMap声明。 我的观点是我如何迭代这个哈希图。我想在下面执行此操作,对于每个键获取相应的数组列表,并根据该键逐个打印数组列表的值。 我试过了,但只得到返回字符串,

  • 我正在尝试使用列表迭代器来遍历一个链表,并根据存储在那里的整数值对下一个节点进行一些操作/检查,但我的代码中出现了一些错误。我想我不明白iterator.next()正在返回什么(一些E对象,但我不知道如何从它中访问我想要的值)编辑器希望我做一些如下所述的转换。它摆脱了错误,但我不知道这是否是处理问题的安全方法,或者它是否具有我正在寻找的行为。请解释为什么我会得到错误,以及是否有一个好的方法来处理

  • 上周我刚开始在工作中学习Python。我正在尝试与我们的人力资源系统集成,并使用每个API将信息上传到Okta(我们的SSO提供商)。 HR API以以下格式输出一个json文件 然后,我想将它输入到一个名为的变量中,并将其放在我的代码中: 我希望遍历Result>EmployeeId>DisplayValue并将它们打印到一个dict中,然后在代码的另一部分中遍历这些

  • 问题内容: 对于Java语言有些陌生,我试图使自己熟悉所有可能遍历列表(或其他集合)的方式(或至少是非病理性方式)以及每种方式的优缺点。 给定一个对象,我知道以下遍历所有元素的方式: 基本的for 循环(当然,也有等效的while/ do while循环) 注意:正如@a​​marseillan指出的那样,这种形式对于在s上进行迭代是一个糟糕的选择,因为该方法的实际实现可能不如使用时有效。例如,实