java - for each 循环应用于 char 数组并使用 Character 完成迭代

标签 java foreach character

我找到了这个程序,其中 for each 循环应用于 char 数组,迭代是使用字符完成的...请解释一下它是如何发生的??...我认为迭代只能是使用字符完成..

class Print{

    public static void main(String args[]) {
        printCharacters("Java");

    }
    public static void printCharacters(String word) {
        char[] characters = word.toCharArray();
        for (Character ch : characters) {
         System.out.println(ch);   
        }

    }

}

输出:

J

A

V

A

最佳答案

我不确定为什么所有的反对票,这是一个合理的问题!

你实际上在这里有一个很好的收获,因为数组是使用原始 char 定义的,for 循环中的迭代应该做同样的事情:

for (char ch : characters) {
    System.out.println(ch);   
}

除非我们有充分的理由去做autoboxing并创建一个 Character 对象 - 这种开销是不需要的(实际上它会影响性能并浪费堆中的内存)。

这种“充分理由”的一个例子是当我们想使用 generics 时这不适用于原始类型。然而,这里不是这种情况。

关于java - for each 循环应用于 char 数组并使用 Character 完成迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33811566/

相关文章:

java - 如何使用不带注释的Spring Data JDBC?

java - 交付基于 Ant 的 Java 项目时必需的组件

c++ - boost::fusion::for_each 中的函数对象不同于 std::for_each

java - Java中有多少个字符

java - 如何为 JAX-WS WebService 调用设置超时

java - 使用安装的 java keystore 证书连接到 ldap

javascript - Underscore.js 性能问题 - 我可以使用 _.defer

PHP 在一个表中输出多个表及其值

jquery - 使用 jQuery 删除变量的第一个字符

utf-8 - 使用informatica将数据从平面文件加载到表中,同时具有英语和外语字符,如中文