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

Iña*_*aki 2 java map

我有一个方法,我从数据库中读取数据,它是这样的:

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;
Run Code Online (Sandbox Code Playgroud)

然后我有另一种方法在JTable中显示数据,但问题是我以不同的顺序读取它,我按照这个顺序阅读它.DNI,DIRECCION,NOMBRE,APELLIDOS,CURSO.

这是一个问题,因为当我在JTable中显示数据时,它出现的顺序错误.谁知道为什么会这样?谢谢!

Kri*_*ian 9

什么类型是mapaTemp,你如何从地图中读取值?例如,Java HashMap没有订单,因此您不能期望按插入顺序获取结果.

你应该看一下LinkedHashMap


Kev*_*sox 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);
        }

    }

}
Run Code Online (Sandbox Code Playgroud)