我正在迭代hashmap,但这些奇怪的括号[]在迭代时就在那里,任何身体都可以指导我如何摆脱它。
由于
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
System.out.println(pairs.getKey() + " = " + pairs.getValue());
Log.v("Pairs get key", pairs.getKey().toString());
Log.v("Pairs get value", pairs.getValue().toString());
mysection.add(pairs.getKey().toString());
temp.add(pairs.getValue().toString());
it.remove(); // avoids a ConcurrentModificationException
}
答案 0 :(得分:1)
我要掩盖代码不使用泛型的部分,以及你实际上没有给我们“意外”输出的部分,以便我们可以弄清楚问题是什么,真的,并列出三种情况,你可以得到“这些奇怪的符号”:
toString
方法将打印其内容,例如[1]
或[1,2,3]
。Object
的{{1}}方法将打印对象类型和地址,例如toString
是一个字符串数组。[Ljava.lang.String;@19821f
,其中包含String
个,或其他[]
方法打印toString
s的对象类型。答案 1 :(得分:1)
我运行了代码。
Map<String, String> map = new HashMap<String, String>();
map.put("AAAA", "11111");
map.put("BBBB", "22222");
map.put("CCCC", "33333");
Iterator<Entry<String,String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Entry<String, String> pairs = it.next();
System.out.println(pairs.getKey() + " = " + pairs.getValue());
System.out.println("Pairs get key: "+pairs.getKey().toString());
System.out.println("Pairs get value: "+pairs.getValue().toString());
it.remove(); // avoids a ConcurrentModificationException
}
输出
AAAA = 11111
Pairs get key: AAAA
Pairs get value: 11111
BBBB = 22222
Pairs get key: BBBB
Pairs get value: 22222
CCCC = 33333
Pairs get key: CCCC
Pairs get value: 33333
唯一的区别是我不知道你在地图中放了什么数据。如果您放置一个List,它将输出[]符号,因为java将打印其toString()方法,这就是列表显示的方式。
答案 2 :(得分:-1)
好的,我得到了答案,问题是显示到控制台显示的地图,和[]符号。所以为了避免它使用另一个实现迭代地图而不是这个。