2016-11-25 115 views
1

我在一個類中編寫了一個方法,我想將一個int數組div26傳遞給一個雙倍頻率表。然後發生那種錯誤。請有人幫助我,我只是一個學生......?Java編程,類型鑄造

感謝

public void frequency(int[] count ,double [] Q){ 
     for(double arguments : Q){ 
      Q[arguments]=(double)(count[arguments]/26); 
     } 
    } 



Encryption.java:35: error: possible loss of precision 
      Q[arguments]=(double)(count[arguments]/26); 
      ^
    required: int 
    found: double 
Encryption.java:35: error: possible loss of precision 
      Q[arguments]=(double)(count[arguments]/26); 
             ^
    required: int 
    found: double 
+0

訪問數組viva索引應按整數進行,因爲您沒有Q [3.5] – Nordiii

+0

您應該在'Q'中使用常規for循環和索引。 – ChiefTwoPencils

+0

呃真的很感謝你,這是一個愚蠢的,但我是一個學生,我只是學習在Java編程,我有很多錯誤要學習,謝謝你,雖然^^ –

回答

0

您正試圖double價值,這是不正確的訪問數組的索引,數組將只包含像0,1,2指標,等等

而且,你將無法使用每個遍歷指數遍歷,所以改用正常for循環如下圖所示:

for(int i=0;i<count.length;i++){ 
     Q[i]=(double)(count[i]/26); 
} 
+0

我沒有得到你的觀點'有序集'? OP在哪裏提到它? – developer

+0

呃真的很感謝你,這是一個愚蠢的,但我是一個學生,我只是學習用java編程,並且我有很多錯誤要學習,謝謝,儘管^^ –

0

您正在使用double作爲數組的索引,這是不可能的,因爲索引被綁定爲int基本類型,這就是爲什麼您會收到編譯錯誤。

+0

呃真的非常感謝你,這是一個愚蠢的一但我是學生,我只是學習用java編程,而且我有很多錯誤要學習,謝謝,雖然^^ –

+0

不是問題:) –