隐藏页面特效

java中If判断改成用map和predicate和function替换

在Java中,将if判断逻辑转换为使用Map、Predicate和Function可以提供更灵活和可维护的解决方案。以下是一个示例,展示了如何将传统的if判断转换为使用这些函数式接口的方式。

假设我们有以下的if判断逻辑:

String input = "someValue"; String result = ""; if ("value1".equals(input)) { result = "result1"; } else if ("value2".equals(input)) { result = "result2"; } else if ("value3".equals(input)) { result = "result3"; } else { result = "defaultResult"; }

 

现在,我们将使用Map、Predicate和Function来重写这段逻辑:

import java.util.HashMap; import java.util.Map; import java.util.function.Function; import java.util.function.Predicate; public class IfReplacementExample { public static void main(String[] args) { String input = "someValue"; String result = processInput(input); System.out.println(result); } private static String processInput(String input) { // 创建一个Map,将Predicate(条件)映射到Function(操作) Map<Predicate<String>, Function<String, String>> mapping = new HashMap<>(); mapping.put(s -> "value1".equals(s), s -> "result1"); mapping.put(s -> "value2".equals(s), s -> "result2"); mapping.put(s -> "value3".equals(s), s -> "result3"); // 遍历Map,找到第一个满足条件的Predicate,并执行相应的Function for (Map.Entry<Predicate<String>, Function<String, String>> entry : mapping.entrySet()) { if (entry.getKey().test(input)) { return entry.getValue().apply(input); } } // 如果没有找到满足条件的Predicate,则返回默认值 return "defaultResult"; } }

在这个示例中,我们首先创建了一个Map,将Predicate(条件)映射到Function(操作)。然后,我们遍历这个Map,找到第一个满足条件的Predicate,并执行相应的Function。如果遍历完整个Map都没有找到满足条件的Predicate,则返回默认值。

这种方法的好处是它将条件和操作解耦,使得代码更加灵活和可维护。你可以很容易地添加新的条件和操作,而不需要修改原有的代码。同时,使用函数式接口也使得代码更加简洁和易于理解。


__EOF__

本文作者一念轮回
本文链接https://www.cnblogs.com/lbzwd/p/18089305.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   2一念轮回2  阅读(69)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示