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

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

有沒有一種簡單的方法可以返回整數值和/或雙精度值?

有沒有一種簡單的方法可以返回整數值和/或雙精度值?

繁星淼淼 2023-06-04 15:43:39
我正在用 java 重新創建類似于 pandas dataframe 的東西來讀取 csv 文件和操作數據。我將所有代碼都編碼為通用的,以處理 csv 文件中的任何類型的列,以及自動聲明包裝類,例如 Integer 和 Double(如果它是數字)。問題是現在我正在編寫只涉及數字列的函數,但我仍然需要進行大量的強制轉換以獲得實際值,我想找到一個更優雅的解決方案。我已經嘗試在方法中進行強制轉換并且它有效但是我正在尋找一種方法來返回數值如果它是列類中的數字以避免為將來的函數這樣做:  //the basic structure  public class Column<T> {  public String type; //column type  public String name; //column name  public ArrayList<T> values; //array of values...  public T getValue(int index) {      return values.get(index);  }}//in another file is the problempublic static double variance(Column c) {    double mean = mean(c);    double var = 0;    for(int i = 0;i < c.getLength();i++) {                            // here is the problem        var = Math.pow((((Number) c.getValue(i)).doubleValue()-mean),2);    }    return var/c.getLength();  }
查看完整描述

1 回答

?
躍然一笑

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

如果您可以自由地修改您的Column類或創建另一個更具體的子類,而不是在對象外部進行強制轉換,您可以添加方法以在內部返回一個雙精度數(如果它是雙精度型),如果它是一個整數則返回一個整數等,因為在您的示例中,您知道那Column是一個Column<Number>. 例如:


public class DoubleColumn extends Column<Number> {

    @Override

    public Double getValue(int index) {

        return super.getValue(index).doubleValue();

    }

}

然后,您可以相應地修改方差方法以采用 aDoubleColumn而不是 a Column。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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