java编程基础
答案:1 悬赏:80 手机版
解决时间 2021-04-05 20:21
- 提问者网友:玫瑰园
- 2021-04-04 20:38
java编程基础
最佳答案
- 五星知识达人网友:白昼之月
- 2021-04-04 21:46
先分析一下
TreeSet ts = new TreeSet();
ts.add("aaa");
ts.add("eee");
ts.add("gggg");
ts.add("ff");
System.out.println(ts);查看这里的System.out.println对应的重载的方法的源码如下:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}再看看String.valueOf(x);
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}实际上就是打印TreeSet重写的toString()返回的字符串。
再看看相应的源码:
public String toString() {
Iterator it = iterator();
if (! it.hasNext())
return "[]";
StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = it.next();
sb.append(e == this ? "(this Collection)" : e);
if (! it.hasNext())
return sb.append(']').toString();
sb.append(',').append(' ');
}
}所以这两种方式本质上没有什么不同,只是前者调用TreeSet提供的方法,后者自己实现一遍而已。
TreeSet
ts.add("aaa");
ts.add("eee");
ts.add("gggg");
ts.add("ff");
System.out.println(ts);查看这里的System.out.println对应的重载的方法的源码如下:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}再看看String.valueOf(x);
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}实际上就是打印TreeSet重写的toString()返回的字符串。
再看看相应的源码:
public String toString() {
Iterator
if (! it.hasNext())
return "[]";
StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = it.next();
sb.append(e == this ? "(this Collection)" : e);
if (! it.hasNext())
return sb.append(']').toString();
sb.append(',').append(' ');
}
}所以这两种方式本质上没有什么不同,只是前者调用TreeSet提供的方法,后者自己实现一遍而已。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯