我有一种从DB读取数据的方法,它是这样的:
public Collection<Map<String, String>> getAllFieldsValues() throws Exception
...
mapaTemp.put("DNI", dni.toString());
mapaTemp.put("NOMBRE", nombre.toString());
mapaTemp.put("APELLIDOS", apellidos.toString());
mapaTemp.put("CURSO", curso.toString());
mapaTemp.put("DIRECCION", direccion.toString());
allFieldsValues.add(mapaTemp);
...
return allFieldsValues;
然后我有另一种方法在JTable中显示数据,但问题是我以不同的顺序读取它,我按照这个顺序阅读它。 DNI,DIRECCION,NOMBRE,APELLIDOS,CURSO。
这是一个问题,因为当我在JTable中显示数据时,它显示的顺序错误。谁知道为什么会这样?谢谢!
答案 0 :(得分:9)
什么类型的mapaTemp以及如何从地图中读取值?例如,Java HashMap没有订单,因此您不能期望按插入顺序获取结果。
您应该查看LinkedHashMap
答案 1 :(得分:6)
尝试使用LinkedHashMap
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) {
Map mapaTemp = new LinkedHashMap();
// Add some elements
mapaTemp.put("DNI", "1");
mapaTemp.put("NOMBRE", "2");
mapaTemp.put("APELLIDOS", "3");
mapaTemp.put("CURSO", "4");
mapaTemp.put("DIRECCION", "5");
for (Iterator it = mapaTemp.keySet().iterator(); it.hasNext();) {
Object key = it.next();
Object value = mapaTemp.get(key);
System.out.println(value);
}
}
}