第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

二維數(shù)組可以存儲一個整數(shù)和一個雙精度數(shù)嗎?

二維數(shù)組可以存儲一個整數(shù)和一個雙精度數(shù)嗎?

守著星空守著你 2022-10-20 17:05:26
所以,如果我的價值觀是:123, 12.34234, 23.34345, 45.67諸如此類,是否可以使用二維數(shù)組來設置這些值?
查看完整描述

1 回答

?
qq_遁去的一_1

TA貢獻1725條經(jīng)驗 獲得超8個贊

是和不是。

從技術上講,您不能為每個數(shù)組維度定義不同的靜態(tài)類型。因此,您不能將int列與double列混合。即使對于對象,您也不能將Integer列與Double列混合。

如果您只需要原語,您可以使用double[][]double 可以表示所有 32 位整數(shù)(請參閱Representing integers in doubles)。但從技術上講,該數(shù)組是全雙精度數(shù):沒有什么可以阻止您存儲3.14第一列中的值。

對于對象,您可以使用通用的基本類型(如果存在)。對于您的特定用例,所有數(shù)字類型都擴展,java.lang.Number因此這有效:

    @Test

    public void testMixedNumbersArray() {

        Number[][] array = new Number[3][2];

        array[0][0] = 123; array[0][1] = 12.34;

        array[1][0] = 234; array[1][1] = 23.34;

        array[2][0] = 345; array[2][1] = 45.67;

        for (Number[] x : array) {

            System.out.println(Arrays.toString(x));

        }

    }


// outputs:

// [123, 12.34]

// [234, 23.34]

// [345, 45.67]

請記住,這實際上還允許您在此數(shù)組中混合 Float、Short、...甚至 BigDecimal 值,以及允許null值。


因此,如果您需要對數(shù)據(jù)類型進行嚴格控制,一個選項是創(chuàng)建一個自定義類,該類封裝兩個適當類型的單獨數(shù)組:


public class MyArray {

    int[] col1;

    double[] col2;


    public MyArray(int size) {

        col1 = new int[size];

        col2 = new double[size];

    }

    // ... add get/set methods as needed, e.g.


    public void setCol1(int pos, int value) {

        col1[pos] = value;

    }


    public void setCol2(int pos, double value) {

        col2[pos] = value;

    }

}

要記住的最后一件事是 Java 多維數(shù)組是“數(shù)組的數(shù)組”(請參閱 Java 中的多維數(shù)組)。這就是為什么只有一種類型:最內層數(shù)組的類型。所有其他維度只是通往目標數(shù)組實例的間接級別(數(shù)組的數(shù)組)。



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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號