java - 减少 For 循环 - 代码优化

标签 java optimization

我是 Java 的新手,正在寻找代码优化技术。此代码使用两个 for 循环给出预期的输出,我想减少/消除循环(如果可能)。

public static void main(String[] args) {
        String dummy = "Hello how are you";
        String[] strArr = dummy.split(" ");
        for(int i=0; i < strArr.length;i++){
            String word = strArr[i];
            for(int j=word.length(); j > 0; j--){
                System.out.print(word.charAt(j - 1));
            }
            System.out.print(" ");
        }
    }

输出: olleH woh era uoy

请指教。

最佳答案

由于打印输出的复杂性将保持不变,您所能做的就是将循环“隐藏”到执行您想要的操作的现有方法中,而不是消除它们,因为系统需要执行的工作量仍然存在需要处理的字符数相同。

您可以使用 Q&A 中描述的字符串反转技术隐藏嵌套循环.可以将外层循环插入 String.join:

String[] data = {"quick", "brown", "fox"};
System.out.println(
    String.join(
        " "
    ,   Arrays.stream(data)
           .map(s -> new StringBuilder(s).reverse().toString())
           .toArray(String[]::new)
    )
);

Demo.

关于java - 减少 For 循环 - 代码优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45784068/

相关文章:

java - restful WS 中的 WSDL 等价物是什么。如果没有,消费者如何生成所需的客户端类?

mysql - 我怎样才能使这个查询更容易编写

c++ - 当涉及到 C++ 中的函数内联时,谁来负责写入数字?

algorithm - 类(class)表组合的遗传算法

javascript - 为什么 array.map(String.fromCharCode) 这么慢?

java - 在java中并行化for循环

java - Java中\b边界匹配器的使用

java - 如何使用RDD持久化和缓存?

javascript - 优化从另一个数组对一个数组进行排序

java - Guava 是否提供对定义字符范围的支持?