Java基础知识强化105:打印数组的方法总结

1. 使用for循环打印数组。

2. 使用Arrays工具类,将数组转化为有序的List打印出来。

3. 使用Arrays工具类,使用Arrays.toString()输出数组内容。

上面三种方法打印数组的示例代码如下:

package com.himi.printarray;

import java.util.Arrays;

public class AnormalArray {

    public static void main(String[] args) {
        /**
         * 使用for循环打印数组
         */
        String names[] = { "Georgianna", "Tenn", "Simon", "Tom" };
        System.out.print("[");
        for(int i=0; i<names.length; i++) {
            if(i== names.length-1) {
                System.out.print(names[i]+"]");
            } else {
                System.out.print(names[i]+", ");
            }

        }
        System.out.println(); 

        /**
         * 使用Arrays,将数组转化为有序的List打印出来
         * <String> List<String> Arrays.asList(String... a)
         */
        System.out.println(Arrays.asList(names));  

        /**
         * 使用Arrays.toString,输出数组内容
         */
        System.out.println(Arrays.toString(names));
    }

}

运行结果,如下:

4. 使用Arrays工具类,使用Arrays.deepToString打印2维数组。

代码示例:

package com.himi.printarray;

import java.util.Arrays;

/*
 * 使用Arrays.deepToString打印2D数组
 */

public class PrintArray {

    public static void main(String[] args) {

        // 2d array, need Arrays.deepToString
        String[][] deepArrayStr = new String[][] { { "yiibai1", "yiibai2" }, { "yiibai3", "yiibai4" } };
        // Output : [[Ljava.lang.String;@15db9742, [Ljava.lang.String;@6d06d69c]
        System.out.println(Arrays.toString(deepArrayStr));
        // Output : [[yiibai1, yiibai2], [yiibai3, yiibai4]]
        System.out.println(Arrays.deepToString(deepArrayStr));

        // 2d array, need Arrays.deepToString
        int[][] deepArrayInt = new int[][] { { 1, 3, 5, 7, 9 }, { 2, 4, 6, 8, 10 } };
        // Output : [[[email protected], [[email protected]]
        System.out.println(Arrays.toString(deepArrayInt));
        // Output : [[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]
        System.out.println(Arrays.deepToString(deepArrayInt));

    }

}

5. 使用工具类Gson(Google开发的json解析包),将数组转换为一个Json字符串打印出来。

代码如下:

package com.himi.printarray;

import com.google.gson.Gson;

/**
 * 打印一个JSON格式的字符串。
 * @author hebao
 *
 */
public class PrintUtils {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int numbers[] = {1,2,3,4,5,6,7};
        String[] days = {"Sun","Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};

        Gson gson = new Gson();
        String numbersJson = gson.toJson(numbers);
        String daysJson = gson.toJson(days);
        System.out.println("numbers数组转化为JSON数据:"+numbersJson);
        System.out.println("days数组转化为JSON数据:"+daysJson);

        System.out.println("");
        System.out.println("-------将JSON字符串转化为字符串数组-------");
        String[] weekdays = gson.fromJson(daysJson, String[].class);
        for(int i=0; i<weekdays.length; i++) {
            if (i == weekdays.length - 1) {
                System.out.print(weekdays[i]);
            } else {
                System.out.print(weekdays[i] + ",");
            }
        }

        System.out.println("");
        System.out.println("-------将多维int数组转化为Json-------");
        int[][] data = {{1, 2, 3}, {3, 4, 5}, {4, 5, 6}};
        String json = gson.toJson(data);
        System.out.println("Data = " + json);

        System.out.println("-------将JSON字符串组转化为多维int数组-------");
        int[][] dataMap = gson.fromJson(json, int[][].class);
        for (int i = 0; i < data.length; i++) {
            for (int j = 0; j < data[i].length; j++) {
                System.out.print(data[i][j] + " ");
            }
            System.out.println("");
        }
    }

}

程序运行结果,如下:

6. 使用Stream打印数组 ,我们可以将数组转换成流并打印出来。

代码示例:

package com.himi.printarray;

import java.util.Arrays;

/*
 * 使用Stream打印数组
 * 我们可以将其转换成流并打印出来。
 */

public class StreamArray {
    public static void main(String[] args) {

         // array
        String[] arrayStr = new String[]{"Java", "Node", "Python", "Ruby"};
        Arrays.stream(arrayStr).forEach(System.out::println);

        int[] arrayInt = {1, 3, 5, 7, 9};
        Arrays.stream(arrayInt).forEach(System.out::println);

        //2d array
        String[][] deepArrayStr = new String[][]{ {"yiibai1", "yiibai2"}, {"yiibai3", "yiibai4"} };
        Arrays.stream(deepArrayStr).flatMap(x -> Arrays.stream(x)).forEach(System.out::println);

        int[][] deepArrayInt = new int[][]{{1, 3, 5, 7, 9}, {2, 4, 6, 8, 10}};
        Arrays.stream(deepArrayInt).flatMapToInt(x -> Arrays.stream(x)).forEach(System.out::println);
    }

}

程序运行结果,如下:

时间: 2025-01-07 12:20:18

Java基础知识强化105:打印数组的方法总结的相关文章

Java基础知识强化之多线程笔记01:多线程基础知识(详见Android(java)笔记61~76)

1. 基础知识: Android(java)学习笔记61:多线程程序的引入    ~    Android(java)学习笔记76:多线程-定时器概述和使用 

java基础知识强化52:Java程序员面试失败的5大原因

下面是Java程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容. 1 说得太少 尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一下你曾经解决过的复杂问题”.面试官会通过你对这些技术和非技术问题的回答来评估你的激情.他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力. 所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊.如果你不能很好地说明你的经验.成就和技能可以给企业带来的价

Java基础知识强化(用于自我巩固)以及审查

1. Java 和 JDK 的关系 JDK(Java Development Kit)Java 开发工具包,它包括:编译器.Java 运行环境(JRE,Java Runtime Environment).JVM(Java 虚拟机)监控和诊断工具等 Java 则表示一种开发语言. 2. Java 程序是怎么执行的? 日常工作中使用的开发工具(IntelliJ IDEA 或 Eclipse 等)可以很方便的调试程序,或者是通过打包工具把项目打包成 jar 包或者 war 包,放入 Tomcat 等

Java基础知识强化08:将字符串倒序输出(包括空格)的几种方法

1.最容易想到的估计就是利用String类的toCharArray(),再倒序输出数组的方法了: 1 package himi.hebao05; 2 3 public class TestDemo02 { 4 public static void main(String[] args) { 5 int i = 0; 6 String text = "hebao I love you!"; 7 String result = " "; 8 char[] charArr

Java基础知识强化之集合框架笔记01:集合的由来与数组的区别

1. 集合的由来: 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储.而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的知识里面,有哪些是容器类型的呢?数组和StringBuffer.但是呢?StringBuffer的结果是一个字符串,不一定满足我们的要求,所以我们只能选择数组,这就是对象数组.而对象数组又不能适应变化的需求,因为数组的长度是固定的,这个时候,为了适应变化的需求

Java基础知识强化之IO流笔记27:FileInputStream读取数据一次一个字节数组byte[ ]

1. FileInputStream读取数据一次一个字节数组byte[ ]  使用FileInputStream一次读取一个字节数组: int read(byte[]  b) 返回值:返回值其实是实际读取的字节个数 . 2. 代码示例: 1 package com.himi.fileinputstream; 2 3 import java.io.FileInputStream; 4 import java.io.IOException; 5 6 7 8 /** 9 * 10 * 使用FileIn

Java基础知识强化之IO流笔记60:打印流 之 改进复制文本文件的案例

1. 使用打印流改进复制文本文件的案例 2. 代码示例: 1 package cn.itcast_03; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.FileReader; 6 import java.io.FileWriter; 7 import java.io.IOException; 8 import java.io.PrintWriter; 9 10 /* 11

Java基础知识强化之IO流笔记59:打印流

1. 打印流 (1)分类: • 字节打印流   PrintStream • 字符打印流   PrintWriter (2)打印流的特点: • 只能写数据,不能读数据 • 只能操作目的地,不能操作数据源 • 可以操作任意类型的数据 • 如果启动了自动刷新,能够自动刷新 • 可以直接操作文本文件的 (3)附件的问题:哪些对象可以直接操作文本文件的呢?   • FileInputStream   • FileOutputStream      • FileReader      • FileWrite

Java基础知识强化07:打印出空心菱形

1.如图打印出空心菱形: 2.下面是逻辑实现代码: 1 package himi.hebao04; 2 3 import java.util.Scanner; 4 5 public class TestDemo08 { 6 public static void main(String[] args) { 7 int length = 1;// 存储菱形的边长的变量 8 Scanner sc = new Scanner(System.in);// 输入数据的扫描对象 9 System.out.pr