您的位置:首页 > 编程语言 > Java开发

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

2016-06-11 11:36 686 查看
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 : [[I@4e25154f, [I@70dea4e]
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);
}

}


程序运行结果,如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: