Java循环打印数组

import java.util.Arrays;
public class HelloWorld {

    private static int N = 5 ;


    private int[][] array = new Array();



    private int i ,j;
    public static void main(String []args) {
       printArray(0,1,1);
       showArray();

    }


    public static void printArray(int begin , int num , int n){
        if(N-2*n<0){
            return ;
        }
        if(N-2*n<-1){
            return ;
        }


        for( i = begin,j=n-1;i<N-1;i++){
            array[i][j]=num;
            num++;
        }

        for(j = i;j<N-n;j++){
            array[i][j]= num;
            num++;
        }


        for(i = j ; i>=n;i--){
            array[i][j]= num;
            num++;
        }


        for(j ;j >= n;j--){
            array[i][j]= num;
            num++;
        }

        n++;
        begin++;
        printArray(begin,num,n);
    }


    public static void showArray(){
        for(int k = 0 ; k<N;k++)
            for(int g = 0 ; k<N;k++){
                System.out.println(array[k][g]);
        }
    }
}
<think>我们正在讨论Java打印数组的方法。根据引用内容,有多种方法可以实现,包括传统的for循环、增强型for循环foreach循环)、Arrays.toString()方法、以及Java 8的Stream API。此外,引用[5]还提到了重写toString方法来打印数组,但这种方法通常用于自定义类中打印对象的数组属性,并不直接用于打印数组。 以下是几种常见的打印数组的方法: 1. **使用普通的for循环**:通过索引遍历数组打印每个元素。 2. **使用增强型for循环foreach循环)**:无需索引,直接遍历数组元素。 3. **使用Arrays.toString()方法**:这是打印整个数组最简洁的方式,它会将数组转换为字符串形式,如[1, 2, 3, 4, 5]。 4. **使用Java 8的Stream API**:通过流式操作将数组元素打印来。 下面我们分别展示这些方法: ### 1. 使用普通的for循环 ```java int[] array = {1, 2, 3, 4, 5}; for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } // 输:1 2 3 4 5 ``` ### 2. 使用增强型for循环 ```java int[] array = {1, 2, 3, 4, 5}; for (int num : array) { System.out.print(num + " "); } // 输:1 2 3 4 5 ``` ### 3. 使用Arrays.toString()方法 ```java import java.util.Arrays; int[] array = {1, 2, 3, 4, 5}; System.out.println(Arrays.toString(array)); // 输:[1, 2, 3, 4, 5] ``` ### 4. 使用Java 8的Stream API ```java import java.util.Arrays; int[] array = {1, 2, 3, 4, 5}; Arrays.stream(array).forEach(num -> System.out.print(num + " ")); // 输:1 2 3 4 5 ``` ### 方法比较 | 方法 | 优点 | 缺点 | |----------------------|--------------------------------------------|--------------------------------------| | 普通for循环 | 直观,可以控制索引 | 代码量稍多 | | 增强型for循环 | 简洁,无需索引 | 无法获取索引 | | Arrays.toString() | 一行代码,输格式规范(带逗号和方括号) | 输格式固定,不能自定义分隔符 | | Stream API | 函式编程,适合链式操作 | 需要Java 8及以上,对于简单任务稍重 | ### 注意事项 - 对于多维数组,可以使用`Arrays.deepToString()`方法,例如: ```java int[][] matrix = {{1,2}, {3,4}}; System.out.println(Arrays.deepToString(matrix)); // 输:[[1, 2], [3, 4]] ``` - 使用循环打印时,如果需要换行,可以在循环结束后打印一个空行,或者使用`System.out.println()`在每次打印元素后换行(但这样每个元素一行)。 ### 总结 - 对于快速打印整个数组,推荐使用`Arrays.toString()`,因为它简单且输格式规范。 - 如果需要自定义输格式(如无括号、自定义分隔符),可以使用循环或Stream API。 §§相关问题§§ 1. 如何打印多维数组? 2. 使用Arrays.toString()打印数组时,如何自定义输格式(如去掉方括号和逗号)? 3. 在Java中,如何将数组转换为字符串并保存到文件中?</think>在 Java打印数组有多种方法,每种方法都有其适用场景和特点。以下是五种常用的数组打印方式,基于您提供的引用内容整理: ### 1. 传统 for 循环打印 [^3][^4] ```java int[] numbers = {1, 2, 3, 4, 5}; for (int i = 0; i < numbers.length; i++) { System.out.print(numbers[i] + " "); } // 输:1 2 3 4 5 ``` **特点**: - 最基础直观的方法 - 可通过索引控制访问顺序 - 适合需要定制化输的场景 ### 2. 增强型 for 循环foreach)[^1][^4] ```java int[] numbers = {1, 2, 3, 4, 5}; for (int num : numbers) { System.out.print(num + " "); } // 输:1 2 3 4 5 ``` **特点**: - 语法简洁,无需索引变量 - 避免数组越界风险 - Java 5+ 支持 ### 3. Arrays.toString() 方法 [^1] ```java import java.util.Arrays; int[] numbers = {1, 2, 3, 4, 5}; System.out.println(Arrays.toString(numbers)); // 输:[1, 2, 3, 4, 5] ``` **特点**: - 一行代码完成打印 - 自动添加方括号和逗号 - 支持所有基本类型和对象数组 - **最推荐的标准方法** ### 4. Java 8 Stream API [^2] ```java import java.util.Arrays; int[] numbers = {1, 2, 3, 4, 5}; Arrays.stream(numbers).forEach(num -> System.out.print(num + " ")); // 输:1 2 3 4 5 ``` **特点**: - 函式编程风格 - 可结合其他流操作(如过滤、映射) - 支持并行处理 ### 5. 重写 toString() 方法 [^5] ```java @Override public String toString() { return Arrays.toString(this.array); // 自定义格式 } ``` **特点**: - 适用于自定义类中的数组字段 - 可控制输格式 - 需在类中实现 ### 方法对比表 | 方法 | 代码简洁度 | 输格式 | 适用场景 | Java 版本要求 | |---------------------|------------|----------------|------------------------------|---------------| | `Arrays.toString()` | ★★★★★ | `[1, 2, 3]` | 快速查看数组内容 | Java 1.2+ | | 增强 for 循环 | ★★★★☆ | `1 2 3` | 需要自定义分隔符 | Java 5+ | | Stream API | ★★★☆☆ | `1 2 3` | 函式编程/链式操作 | Java 8+ | | 传统 for 循环 | ★★☆☆☆ | 完全自定义 | 需要索引/复杂格式化 | 所有版本 | | 重写 `toString()` | ★★☆☆☆ | 完全自定义 | 类中包含数组字段 | 所有版本 | > **最佳实践建议**: > 1. 日常调试首选 `Arrays.toString()`,格式规范且代码简洁 > 2. 需要定制分隔符时用增强 for 循环 > 3. 复杂据处理使用 Stream API > 4. 打印多维数组用 `Arrays.deepToString()` ```java // 多维数组打印示例 int[][] matrix = {{1,2}, {3,4}}; System.out.println(Arrays.deepToString(matrix)); // 输:[[1, 2], [3, 4]] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值