亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我如何編寫一個函數返回 Java 中索引處的三維數組的深層副本?

我如何編寫一個函數返回 Java 中索引處的三維數組的深層副本?

交互式愛情 2022-11-30 16:17:50
在這個任務中,你必須實現一個簡單的旅游規劃系統??捎寐眯械臄祿庆o態給出的,每個旅行都有多個路點。單個航路點由 x 值和 y 值組成。我必須編寫 2 個函數: int getCountOfTours- 返回可用游覽的數量 int[][] createDeepCopyOfTour - 返回索引 idx 處的游覽的深層副本第一個功能我做了,但是我不明白第二個功能createDeepCopyOfTour我想弄清楚第二個函數是如何工作的。請幫我。非常感謝你!這是我的代碼:private static final int[][][] TOUR = new int[][][]{        {{0, 0}, {4, 0}, {4, 3}, {0, 3}},         {{0, 0}, {3, 0}, {3, 4}, {0, 0}},         {{1, 3}, {3, 2}, {0, 4}, {2, 2}, {3, 1}, {1, 4}, {2, 3}},         {{-2, -1}, {-2, +3}, {4, 3}, {0, 0}}     };public static int[][] createDeepCopyOfTour(int idx) {        throw new UnsupportedOperationException("Not supported yet.");//I dont understand about this function.    }   
查看完整描述

1 回答

?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

簡而言之,深拷貝就是分配一個新的內存區域來存儲您要復制的任何內容的副本。在深度復制數組的情況下,您將創建一個新數組并使用 for 循環將值從原始數組復制到新數組中。我可以收集到的 createDeepCopyOfTour 函數的目的是創建一個新數組,其中包含靜態 TOUR 數組中指定索引的游覽航點。


不幸的是,它并不像下面這樣簡單:


private static final int[][][] TOUR = new int[][][]{

    {{0, 0}, {4, 0}, {4, 3}, {0, 3}}, 

    {{0, 0}, {3, 0}, {3, 4}, {0, 0}}, 

    {{1, 3}, {3, 2}, {0, 4}, {2, 2}, {3, 1}, {1, 4}, {2, 3}}, 

    {{-2, -1}, {-2, +3}, {4, 3}, {0, 0}} 

};



public static int[][] createDeepCopyOfTour(int idx) {

    return TOUR[idx];

}

以上將創建一個淺表副本,并且只會返回對原始數組的引用。要創建深拷貝,您需要使用 new 關鍵字創建一個新數組,該關鍵字將為您想要復制的任何內容分配新內存,然后使用 for 循環將值復制到新數組中。幸運的是,這很簡單,因為我們知道每個航路點坐標只有兩個軸,所以您只需要一個 for 循環來復制值。


private static final int[][][] TOUR = new int[][][]{

    {{0, 0}, {4, 0}, {4, 3}, {0, 3}}, 

    {{0, 0}, {3, 0}, {3, 4}, {0, 0}}, 

    {{1, 3}, {3, 2}, {0, 4}, {2, 2}, {3, 1}, {1, 4}, {2, 3}}, 

    {{-2, -1}, {-2, +3}, {4, 3}, {0, 0}} 

};



public static int[][] createDeepCopyOfTour(int idx) {

    int tour[][] = new int[TOUR[idx].length][2];

    for (int i = 0; i < TOUR[idx].length; i++)

    {

        tour[i][0] = TOUR[idx][i][0];

        tour[i][1] = TOUR[idx][i][1];

    }


    return tour;

}


查看完整回答
反對 回復 2022-11-30
  • 1 回答
  • 0 關注
  • 75 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號