【发布时间】:2012-11-21 22:08:35
【问题描述】:
我有这样的方法:
public void show(Object o)
{
//show content of object
}
我想将 TreeSet 或 HashMap 传递给它。但它是一个不同的迭代,我的意思是,当我想显示 TreeSet 的内容时,我使用该代码:
while ( iter.hasNext() )
{
System.out.println( iter.next());
}
但是当我有 HasMap 时,我会这样打印:
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
String key = iterator.next().toString();
String value = map.get(key).toString();
System.out.println(key + " " + value);
}
当我不知道用户是否传递 TreeSet 或 HashMap 时,有没有办法显示集合的内容?我无法在 show 方法中进行任何转换(这不是重点)。有什么想法吗?
【问题讨论】:
-
为什么不创建两个方法,例如:
show(TreeSet t)和show(HashMap m)? -
@NullUserException:我知道我可以做到这一点,但我在某人的博客上读到它可能 - 但不知道如何做到这一点:)(没有代码示例)我只是想知道它是否真的有可能:)
-
你可以结合这两种方法,但是要从map中获取key和value你需要知道它是一个map,所以你最终使用了instanceof。 @NullUserException 的评论中建议的两种显示方法更简单、更干净。
-
o.toString()可以解决问题,除非您不喜欢默认格式。 -
顺便说一句,如果你想知道集合或地图的内容是什么,你可以在上面调用
System.out.println()。只是说。
标签: java collections hashmap treeset