重写LinkedHashMap的toString方法,
分享于 点击 48421 次 点评:13
重写LinkedHashMap的toString方法,
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());
}
}
相关文章
- 暂无相关文章
用户点评