JAVA打印数组的四种方法

JAVA打印数组的四种方法

数组启发

无聊看模块Integer.java源码时(IDEA中鼠标悬浮在Integer上按ctrl+alt 可以转到类源码),因为刚学java,想尝试着仿照python的方法打印数组:

final int[] arr1 = {1,2,3,4,5};
System.out.println(arr1);

只打印出了地址:

错误打印数组结果

于是上网搜了下打印数组内容的正确方法,整理如下:

1.循环打印数组

String [] arr2 = {"dashi", "baiqun", "wangxiang", "wennuan", "ni"};
public static void loopPrintArray(String []arr) {
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < arr.length; i++) {
        if(i>0){
            sb.append(",");
        }
        sb.append(arr[i]);
    }

    System.out.println(sb.toString());
}
// 循环打印数组
System.out.println("------------ loop -------------");
loopPrintArray(arr2); // 不带[]输出一行

结果:

loop数组结果

可以看到,方法loopPrintArray是把数组中每一个元素用 “,” 连接成一个字符串再输出。

2.使用Arrays.toString()方法

使用Arrays类需要引用:

import java.util.Arrays;

代码:

String [] arr2 = {"dashi", "baiqun", "wangxiang", "wennuan", "ni"};
public static void toStingPringArray(String []arr) {
    System.out.println(Arrays.toString(arr));
}
// 使用Arrays.toString()方法
System.out.println("-- Arrays.toString() Methods --");
toStingPringArray(arr2); // 带[]输出一行

结果:

toString数组

这个输出结果就和python中打印数组很相仿了。

3.使用JDK 8 的 java.util.Arrays.stream()

同样需要导入:

import java.util.Arrays;

代码:

String [] arr2 = {"dashi", "baiqun", "wangxiang", "wennuan", "ni"};
// 3.使用JDK 8 的 java.util.Arrays.stream()
public static void streamPrintArray(String []arr) {
    Arrays.stream(arr).forEach(System.out::println);
}
// 使用JDK 8 的 java.util.Arrays.stream()
System.out.println("--- Arrays.stream() Methods ---");
streamPrintArray(arr2); // 分行输出

结果:

stream打印数组

Arrays.stream()方法是将数组元素分行输出。

4 使用Arrays.deepToString()

对于deepToString,若为多维数组则会用同样的方法打印

代码:

String [] arr2 = {"dashi", "baiqun", "wangxiang", "wennuan", "ni"};
String [][] arr3 = {{"llama","truthahn"},{"xiaoerer","laopenzi"},{"xiangnile","haha.."}};
// 4.1 使用Arrays.deepToString()
public static void deepToStringPringArray(String []arr) {
    System.out.println(Arrays.deepToString(arr));
}
// 4.2 对于deepToString,若为多维数组则会用同样的方法打印
public static void deepToStringPringArrayExpand(String [][]arr) {
    System.out.println(Arrays.deepToString(arr));
}
// 扩展使用Arrays.toString(): Arrays.deepToString()
System.out.println("- Arrays.deepToString() Methods -");
deepToStringPringArray(arr2);
// deepToStringPringArray(arr3); // 不兼容:java.lang.String[][]无法转换为java.lang.String[]
System.out.println("- Arrays.deepToString() Expanded -");
deepToStringPringArrayExpand(arr3);

结果:

deepToString打印数组

可以看到对二级数组,使用deepToString()方法使得数组arr3按照之前相同的模式输出。

个人心得

学习一种编程语言时还是要多思考,理解和实践同样重要。

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TurkeyMan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值