2016-05-12 150 views
-2

我想打印對象值。 我無法訪問它,不知道如何去做。如何從Java中的HashMap獲取值?

我不能與value()

這裏接取這是我的代碼:

public class txtdatei { 

private String pickerName; 
private String language; 
private float volumeGain; 
private long pickerId; 
private static Map<Long,txtdatei> mapp=new HashMap<Long,txtdatei>(); 

public txtdatei(String username, String language, float volume){ 

    this.pickerName=username; 
    this.language=language; 
    this.volumeGain=volume; 
} 
public static void main(String[] args){ 

    File file=new File("test.txt"); 
    try{ 
     file.createNewFile(); 
     FileWriter writer =new FileWriter(file); 
     writer.write("username\tbenni\tlanguage\tgerman\n"); 
     writer.flush(); 
     writer.close(); 
     FileReader fr =new FileReader("test.txt"); 
     BufferedReader reader= new BufferedReader(fr); 
     String zeile=reader.readLine(); 
    String [] data=zeile.split("\t"); 
    int i=0; 
    for(i=0;i<data.length;i++) 
    { 
     if(data[i].equals("Username")) 
       { 
        mapp.put((long)(1),new txtdatei(data[2],data[4],Float.parseFloat(data[6]))); 
       } 
    }  
    System.out.println(mapp.get(1)); //dont know how to read the  
    }catch(IOException ioe){ioe.printStackTrace();} 

}

希望有人能幫助我,

感謝。

+2

你有沒有聽說過使用[爲地圖的JavaDoc](https://docs.oracle.com/javase/7/docs/api/java/util/Map.html的)?看看'Map.get(key)'。 –

+0

此外,你寫'用戶名',但等於檢查'用戶名'。 –

回答

1

下面是一個解決方案,使用密鑰獲取每個地圖的值。

for(Long value: mapp.keySet()){ 
    System.out.println(mapp.get(value)); 
} 

希望它有幫助。

0

首先,你將鍵設置爲Long,所以當你使用Map.get((Object)鍵)時,你需要給一個Long來檢索值。我認爲1被jvm翻譯爲Integer,這就是爲什麼你無法獲得價值。試試這個,它應該工作:

mapp.get((long)1)