您的位置:首页 > 其它

重写LinkedHashMap的toString方法

2017-09-12 15:10 387 查看
package com.aruisi.text;

import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Set;

class MyLinkedHashMap<K, V> extends LinkedHashMap<K, V> {

private static final long	serialVersionUID	= 3070817484595053820L;

@Override
public String toString() {

Set<java.util.Map.Entry<K, V>> keyset = this.entrySet();
Iterator<java.util.Map.Entry<K, V>> i = keyset.iterator();
if (!i.hasNext()) return "{}";
StringBuffer sb = new StringBuffer();
sb.append('{');
for (;;) {
java.util.Map.Entry<K, V> me = i.next();
K key = me.getKey();
V value = me.getValue();
sb.append(key == this ? "(this Map)" : key);
sb.append('=');
sb.append(value == this ? "(this Map)" : value.getClass().isArray() ? Arrays.toString((Object[]) value) : value);
if (!i.hasNext()) return sb.append('}').toString();
sb.append(',').append(' ');
}
}
}

测试类

package com.aruisi.text;

import java.util.HashMap;
import java.util.LinkedHashMap;

public class Map {
public static void main(String[] args) {
HashMap<Object, Object> map = new LinkedHashMap<>();
String[] string = new String[] { "s", "z", "", "5232" };
Integer[] integer = new Integer[] { 1, 2, 4 };
map.put("userId", "123");
map.put("farmId", "3234");
map.put("xxxId", "axsx");
map.put("uuuId", "65657667");
map.put("string", string);
map.put("integer", integer);
System.out.println(map.toString());
MyLinkedHashMap<Object, Object> name = new MyLinkedHashMap<>();
name.put("userId", "123");
name.put("farmId", "3234");
name.put("xxxId", "axsx");
name.put("uuuId", "65657667");
name.put("string", string);
name.put("integer", integer);
System.out.println("MyLinkedHashMap=" + name.toString());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: