0
byte[] AllNumber = {4,3,2,1,0,5,6,7,8,9};
byte[] MultNumber = {4,3,2,1,0,5,6,7,8,9}; // No matter the content
byte[] DivNumber = {4,3,2,1,0,5,6,7,8,9}; // No matter the content
Alter(AllNumber,MultNumber,DivNumber,5.0,3,2); //The Arrays must be Altered!!
for (int i = 0; i<MultNumber.length; i++) {
System.out.println("MultNumber["+i+"]:"+MultNumber[i]);
}
for (int i = 0; i<DivNumber.length; i++) {
System.out.println("DivNumber["+i+"]:"+DivNumber[i]);
}
現在我有這樣的方法:
Alter(byte[] src, byte[] Mlt, byte[] Dvs, double dNum, int Lngt, int Ini) {
// INI THE PROBLEM
Mlt = Arrays.copyOf(Mlt, src.length + Lngt); //HERE IS THE ASSIGNATION
for (int i = ini; i<Mlt.length; i++) {
Mlt[i] = Mlt[i]*dNum; //No matter the operation (to simplify the problem)
}
Dvs = Arrays.copyOf(Dvs, src.length - Lngt); //HERE IS THE ASSIGNATION
for (int i = Ini; i<Dvs.length; i++) {
Dvs[i] = Dvs[i]/dNum; //No matter the operation (to simplify the problem)
}
// END THE PROBLEM
}
另一種嘗試
//Another Attempt!!!
Alter(byte[] src, byte[] Mlt, byte[] Dvs, double dNum, int Lngt, int Ini) {
// INI THE PROBLEM
byte[] TM = new byte[src.length + Lngt]
for (int i = ini; i<Mlt.length; i++) {
TM[i] = Mlt[i]*dNum; //No matter the operation (to simplify the problem)
}
Mlt = TM; //HERE IS THE ASSIGNATION
TM = null;
byte[] TD = new byte[src.length - Lngt]
for (int i = Ini; i<Dvs.length; i++) {
TD[i] = Dvs[i]/dNum; //No matter the operation (to simplify the problem)
}
Dvs = TD; //HERE IS THE ASSIGNATION
TD = null;
// END THE PROBLEM
}
我希望得到兩個安排後改變執行方法「Alter」的調用。 我如何做到這一點?
我需要改變陣列的長度!
謝謝你的寶貴幫助。
PD。看起來稍後要對數組進行賦值,「通過引用調用」在「按值調用」中進行轉換。如果ASSIGNATION被省略,那麼「參照呼叫」就是。
你真正要做的是創建源陣列的新版本,代表某種形式的「變異」操作。所以,在你的方法中創建新的數組,並返回***它。然後,您可以將它分配給保存源數據的相同變量,或者更好地將其分配給具有更有意義名稱的另一個變量。 – Perception