我有一段Java代碼,其中有矢量定義爲Vector1, Vector2, Vector3,.....VectorN
和oldVector1, oldVector2, oldVector3,...oldVectorN
。使用對象名稱作爲循環中的變量
我需要編寫一個遍歷所有這些向量的循環,並計算Vector"i"
與oldVector"j"
的每個組合的標量乘積。
其實我知道最好的方法是用一個包含所有向量的數組替換單個向量並使用數組。
但是,我不允許觸摸代碼的其餘部分,並且需要保留作爲單獨對象的矢量的定義。
我該怎麼做這樣的事情?
for (i = 1; i < 10; i++) {
for (j = 1 ; i < 10; j++) {
result[i][j] = dotproduct(Vector"i", oldVector"j");
}
}
基本上,有沒有什麼辦法在Javahow中構造類似字符串的變量名,例如,例如"Vector"+i
?
這不是一個答案,但是是在哪裏尋找線索。在C#中,我會用反射來做這件事。您必須使用字符串名稱獲取表示該屬性的對象,然後調用它。這是因爲java編譯安全,因此不會讓你直接像你在代碼中那樣做。 – Rob
你真正應該做的就是把這些矢量放在散列表中,並通過「vector1」鍵入它們......「vectorN」字符串 – amphibient
@foampile這是正確的想法,但容器錯誤。鍵入字符串的關聯數組不是必需的。這是一個具有整數指數的傳統數組。 –