2011-07-02 11 views
2

を私は地図にデータを入れて、私は異なる順序でそれを得る、それはこのように書きます:私は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

第三段落を見てする必要がありますhttp://download.oracle.com/javase/1.4.2/docs/api/java/util/Map.html – aalku

答えて

9

を使用してみてくださいmapaTempで、どのようにマップから値を読みますか。たとえば、Java HashMapには順序がないため、結果を挿入する順序で取得することはできません。

あなたはLinkedHashMap

5

は、どのような種類の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); 
     } 

    } 

} 
関連する問題