【Java】 容器与数组的输出方式
一、容器输出方式
1、容器不同于数组,容器若是想输出全部元素,可以直接利用 System.out.println(collection)。此时默认调用了 toString() 方法。
输出的三种方法:
- 1、toString
- 2、foreach
- 3、Iterator
package Packger;
import java.util.HashSet;
import java.util.Iterator;
public class containerPrint {
public static void main(String[] args) {
// TODO Auto-generated method stub
HashSet<String> h = new HashSet();
h.add("first");
h.add("second");
h.add("three");
h.add("four");
h.add("first");//set不可重复,覆盖
//1、方法一
System.out.println("方法一: 默认调用toString\n");
System.out.print(h);//默认调用toString
System.out.println("\n");
//2、方法二
System.out.println("方法二: 调用foreach\n");
for (Object object : h) {
System.out.print(object);
}
System.out.println("\n");
//3、方法三
System.out.println("方法三: 调用Iterator\n");
Iterator i = h.iterator();
while(i.hasNext()){
System.out.print(i.next());
}
System.out.println("\n");
}
}
输出结果为:
方法一: 默认调用toString
[four, three, first, second]
方法二: 调用foreach
fourthreefirstsecond
方法三: 调用Iterator
fourthreefirstsecond
二、数组的输出方式
(1)利用foreach语句;
(2)for循环遍历数组元素,再输出;
(3)借用Arrays.toString(array)语句
package Packger;
import java.util.Arrays;
public class containerPrint {
public static void main(String[] args) {
String[] str = {"Test1","Test2","Test3"};
//借用Arrays.toString()方法
System.out.println(Arrays.toString(str));
System.out.println("\n----------------------");
//利用foreach语句;
for (Object object : str) {
System.out.print(object+"\n");
}
System.out.println("\n----------------------");
//for循环遍历数组元素,再输出;
for (int j = 0; j<str.length;j++) {
System.out.println(str[j]);
}
}
}
输出结果:
[Test1, Test2, Test3]
----------------------
Test1
Test2
Test3
----------------------
Test1
Test2
Test3
三、toString() 函数理解(二维数组)
官方API文档中toString()的传入参数是一维数组,所以要打印二维数组,需要分别将二维数组的行传入toString中。
如果二维数组是String a[ i ][ j ],要打印第一行的话需要传入a[ 0 ] .
示例:
import java.util.Arrays;
import java.util.Scanner;
public class scanner3 {
public static void main(String[] args) {
System.out.println("输入:");
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
System.out.println("m: "+ m);
System.out.println("n: "+ n);
int[][] num = new int[m][n];
for(int i = 0; i < num.length; i ++) {
for (int j = 0; j < n; j++) {
num[i][j] = sc.nextInt(); // 一个一个读取
}
}
System.out.println(Arrays.toString(num));
for(int[]v : num) {
System.out.println(Arrays.toString(v));
}
}
}
输出结果:
输入:
2 3
m: 2
n: 3
1 2 3
4 5 6
[[I@4aa298b7, [I@7d4991ad]
[1, 2, 3]
[4, 5, 6]
总结
可以多查查Java SE API