system.out.println触发联想

1、system.out.println();可以输出基本类型和类类型,可以直接输出string类型对象。

2、其实system.out.println();输出的是类的toString方法,所以非string对象也可以被system.out.println输出,但是很有可能是乱码,如:

 class Node {
	int number;
	Node nextNode;
	Node(int i){
		this.number=i;
	}
}
		Node tNode  = new Node(3);
		System.out.println(tNode);

打印输出的是:Node@1aa9f99.所以必须重写toString方法,每个类都有toString()方法。

3、数组也是类,有些数组为了显示,就定义了往String类型转换的方法:

<span style="white-space:pre">		</span>byte[] bytes = new byte[]{1,2,4};
		System.out.println(bytes);
结果输出是:[B@1b15692,

		byte[] bytes = new byte[]{1,2,4};
		System.out.println(Arrays.toString(bytes));
结果输出是:[1, 2, 4];但是切记,是Arrays.toString(),不是bytes.toString().   int数组、short数组均是这种形式。


但是:

		char[] chars = new char[]{'1','2','3'};
		System.out.println(chars);
输出是:123。就是直接按字符串输出了。

4、集合框架类:

		List list = Arrays.asList("nimei","mausu","caoni");
		List list1 = Arrays.asList(1,2,3);
		System.out.println(list);
		System.out.println(list1);
打印输出:  框架类中只有List可以被Arrays转化。

[nimei, mausu, caoni]
[1, 2, 3]

	HashSet<String> hs = new HashSet<String>();  
        hs.add("B");  
        hs.add("A");  
        hs.add("D");  
        hs.add("E");  
        hs.add("C");  
        hs.add("F"); 
        hs.add(null);
        System.out.println("HashSet 顺序:\n"+hs);  
打印输出:

HashSet 顺序:
[null, D, E, F, A, B, C]
但是如果set或者是list里面装的是其他的类(自己定义的类)就不行了。如下:

 class Node {
	int number;
	Node nextNode;
	Node(int i){
		this.number=i;
	}
//	@Override
//	public String toString() {
//		// TODO Auto-generated method stub
//		return ""+number;
//	}
}

<span style="white-space:pre">	HashSet<Node> hashSet = new HashSet<Node>();
<span style="white-space:pre">	</span>hashSet.add(new Node(1));
<span style="white-space:pre">	</span>hashSet.add(new Node(2));
<span style="white-space:pre">	</span>hashSet.add(new Node(3));
<span style="white-space:pre">	</span>hashSet.add(new Node(4));
<span style="white-space:pre">	</span>hashSet.add(new Node(5));
<span style="white-space:pre">	</span>System.out.println(hashSet);</span>
打印输出的是:

[Node@18b3364, Node@530cf2, Node@181ed9e, Node@76fba0, Node@1db05b2]

如若,想正常打印,要重写toString:

 class Node {
	int number;
	Node nextNode;
	Node(int i){
		this.number=i;
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return ""+number;
	}
}

<span>	HashSet<Node> hashSet = new HashSet<Node>();
<span>	</span>hashSet.add(new Node(1));
<span>	</span>hashSet.add(new Node(2));
<span>	</span>hashSet.add(new Node(3));
<span>	</span>hashSet.add(new Node(4));
<span>	</span>hashSet.add(new Node(5));
<span>	</span>System.out.println(hashSet);</span>
//打印输出为[1, 3, 5, 4, 2];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值