public String toString()
{
StringBuffer sb = new StringBuffer();
java.util.Map.Entry entry;
for(Iterator it = entrySet().iterator(); it.hasNext(); sb.append(entry.getValue()))
{
entry = (java.util.Map.Entry)it.next();
sb.append("\"").append(entry.getKey()).append("\"\n");
} return sb.toString();
}能详细说说,是菜鸟
{
StringBuffer sb = new StringBuffer();
java.util.Map.Entry entry;
for(Iterator it = entrySet().iterator(); it.hasNext(); sb.append(entry.getValue()))
{
entry = (java.util.Map.Entry)it.next();
sb.append("\"").append(entry.getKey()).append("\"\n");
} return sb.toString();
}能详细说说,是菜鸟
编译提示找不到符号---entrySet()
public String toString()
{
StringBuffer sb = new StringBuffer();
java.util.Map.Entry entry;//表示一个键-值对的对象,主要方法:getKey() 返回与此项对应的键。 getValue() 返回与此项对应的值。
//entrySet()就是返回一个当前对象(可能是各map)的set视图,set里放的都是java.util.Map.Entry 类型对象,
//也就是把原来对象(可能是个map)中的数据以键值对的形式放在一个set里
//iterator()返回一个迭代器,Iterator类型对象,
//主要方法:hasNext();如果仍有元素可以迭代,则返回 true; next();返回迭代的下一个元素
for(Iterator it = entrySet().iterator(); it.hasNext(); sb.append(entry.getValue()))
{
entry = (java.util.Map.Entry)it.next();
sb.append("\"").append(entry.getKey()).append("\"\n");
} return sb.toString();
}
也许你的类中有一个实现了Set接口的属性,
这个重写的toString()方法就是以一定的格式输出这个Set中的内容,YourClass yourClass = new YourClass();
System.out.println(yourClass); // 直接输出Set中的内容
Set<Map.Entry<K,V>> entrySet()返回此映射中包含的映射关系的 set 视图。返回的 set 中的每个元素都是一个 Map.Entry。
而Map.Entry为一个接口:
public static interface Map.Entry<K,V>映射项(键-值对)。
里面存放key和value的键值对程序首先得到entrySet()的迭代(Iterator it = entrySet().iterator()),并依次取出其中的Entry,也就是键值对,完后在键的旁边加上双引号并回车,还要加上值,整个程序就是以一定格式显示键值对,楼主运行下就明白了
我的感觉会造成key和value错开一行。即上一个value和下一个key同行。这不是添乱吗。
map.put("aa", "AA");
map.put("bb", "BB");
map.put("cc", "CC");
map.put("dd", "DD");
map.put("ee", "EE");
for(Iterator it = map.entrySet().iterator(); it.hasNext(); )
{
entry = (java.util.Map.Entry<String,String>)it.next();
sb.append(entry.getKey()).append("------").append(entry.getValue()).append("\n");
}看看带颜色的处的调用方式,输出如下:
dd------DD
ee------EE
aa------AA
bb------BB
cc------CC