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

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

Java:如何制作特定對象的二維數組

Java:如何制作特定對象的二維數組

慕娘9325324 2023-04-26 15:05:42
我在 Java 中有以下類:public class Cell {    private int x;    private int y;    private int g;    private int h;    public Cell(int x, int y, int g, int h) {       this.x = x;       this.y = y;       this.g = g;       this.h = h;    }}我想制作一個二維數組,其中數組的每個元素都是 Cell 類型。但是,我不確定執行此操作的最佳方法是什么。任何見解表示贊賞。
查看完整描述

2 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

Cell[][]這是。但是請注意,這與二維數組略有不同。它實際上是一個一維數組,其元素都具有類型Cell[]。這意味著您的陣列不必是“矩形”。


Cell[][] cells = new Cell[10][10];做你所期望的,并創建一個 10x10 的矩形陣列。


但是,您可以執行以下操作:


Cell[][] cells = new Cell[10][];

cells[0] = new Cell[1];

cells[1] = new Cell[1000];

...


cells[1][5] = 1;  // allowed, since cells[1] is a Cell[] of size 1000

cells[0][5] = 1;  // throws ArrayIndexOutOfBoundsException, since cells[0] has size 1

例如,如果您嘗試表示三角形數據結構(例如帕斯卡三角形),這會有所幫助。


查看完整回答
反對 回復 2023-04-26
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

實際上我認為 Array 不會方便,固定大小等。也許在字段中使用帶有 Collections 的額外類會更符合 OOP 風格和方便。



class Board {


    List<List<Cell>> hash;


    public Cell getCell(int x, int y) {

        // might be usefull to copy return value for immutability of hash

        return hash.get(x).get(y);

    }


    public void setCell(Cell cell, int x, int y) {

        this.hash.get(x).set(y, cell);

    }



}


查看完整回答
反對 回復 2023-04-26
  • 2 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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