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

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

如何將 Arraylist 轉換為 2D 雙[][] 數組

如何將 Arraylist 轉換為 2D 雙[][] 數組

慕姐8265434 2022-08-17 12:14:15
我有一個具有s的對象,它們是x和y:ArrayListCoordArrayList<Coords> positionsArrayList = new ArrayList<>(values);class Coords {    int x;    int y;    public boolean equals(Object o) {        Coords c = (Coords) o;        return c.x == x && c.y == y;    }    public Coords(int x, int y) {        super();        this.x = x;        this.y = y;    }    public int hashCode() {        return new Integer(x + "0" + y);    }}現在我想以2D數組的形式提取這個x和y。就像double[][]double[][] vector={{0,0},{1,1},{2,2}}我試過這個代碼:for (Coords value : positionsArrayList) {    positions = new double[][]{{value.x, value.y}};}但它確實只輸入最后一個條目。Java新手請幫忙
查看完整描述

3 回答

?
ibeautiful

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

聲明:

positions = new double[][]{{value.x, value.y}};

每次重新分配引用。最后,將“指向”(包含)最后一個元組,這就是為什么你把它看作是結果。positions


查看完整回答
反對 回復 2022-08-17
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

您可以做的是使用傳統的 for 循環來實現結果:


positions = new double[positionsArrayList.size()][2];

for(int i =0; i < positionsArrayList.size(); i++){

    positions[i][0] = positionsArrayList.get(i).getX();

    positions[i][1] = positionsArrayList.get(i).getY();

}


查看完整回答
反對 回復 2022-08-17
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

您可以為每個索引分配每個坐標值,例如:


double[][] positions = new double[positionsArrayList.size()][2];


for (int i = 0; i < positionsArrayList.size(); i++) {

    positions[i][0] = positionsArrayList.get(i).x;

    positions[i][1] = positionsArrayList.get(i).y;

}

或者,如果您熟悉直播:


double[][] positions= positionsArrayList.stream()

            .map(coords -> new double[]{coords.x, coords.y})

            .toArray(double[][]::new);


查看完整回答
反對 回復 2022-08-17
  • 3 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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