我把数据放在Map中,然后按不同顺序得到它

时间:2011-07-02 16:56:15

标签: java map

我有一种从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中显示数据时,它显示的顺序错误。谁知道为什么会这样?谢谢!

2 个答案:

答案 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);
        }

    }

}