gpt4 book ai didi

java - 有没有一种简单的方法可以返回整数值和/或 double 值?

转载 作者:行者123 更新时间:2023-12-02 01:42:13 25 4
gpt4 key购买 nike

我正在用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 problem
public 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();
}

最佳答案

如果您可以自由修改 Column 类或创建另一个更具体的子类,而不是在对象外部进行强制转换,您可以添加方法以在内部返回 double(如果它是 double),如果它是 int,则返回 int等等,因为在您的示例中您知道 ColumnColumn<Number> 。例如:

public class DoubleColumn extends Column<Number> {
@Override
public Double getValue(int index) {
return super.getValue(index).doubleValue();
}
}

然后您可以相应地修改方差方法以采用 DoubleColumn 而不是 Column

关于java - 有没有一种简单的方法可以返回整数值和/或 double 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57482289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com