我正在尝试将带有键和值的HashMap打印到TextArea字段中。 当我尝试将其打印出来时会打印出地图:
for(Map.Entry<Integer,String> entry : kodovi.entrySet()) {
System.out.println(entry.getKey()+" : "+entry.getValue());}
但是当我尝试在这样的文本区域中打印出来时,它只打印出最后一个键和值。
for(Map.Entry<Integer,String> entry: kodovi.entrySet()){
textArea.setText(entry.getKey()+" : "+entry.getValue());}
如何解决这个问题?
答案 0 :(得分:2)
每次拨打textArea.setText(...)
时,
最后一个电话会取代之前的任何内容。
您可以获取之前的内容并附加到其中, 但字符串连接效率低下。
使用StringBuilder
构建字符串会更好,
然后设置内容:
StringBuilder sb = new StringBuilder();
for (Map.Entry<Integer, String> entry : kodovi.entrySet()) {
sb.append(entry.getKey()).append(" : ").append(entry.getValue()).append("\n");
}
textArea.setText(sb.toString());