【问题标题】:How to prevent NaN values appending to ArrayList?如何防止 NaN 值附加到 ArrayList?
【发布时间】:2020-08-10 13:31:53
【问题描述】:

我将数据存储在 DoubleTimeSeries 中:

DoubleTimeSeries width = DoubleTimeSeries.getDoubleTimeSeries(connection, userId, "Width");
DoubleTimeSeries height = DoubleTimeSeries.getDoubleTimeSeries(connection, userId, "Height"); 

我将上述结果添加到 ArrayList 中:

ArrayList<String> myArray = new ArrayList<>();
for (int i = 0; i < width.size(); i++) {
    myArray.add(width.get(i) + "," + height.get(i) );
}
System.out.println("My Array: \n" + myArray);

我的问题:我的文件中的某些宽度或高度值是空的(它是 NaN),当我将它们添加到我的 ArrayList 中时,我得到如下:

[NaN,NaN, 25,50, 55, 60, NaN,NaN, 45,56]  

现在:如何防止(或忽略)这些 NaN 值添加到我的 ArrayList 中。我希望 ArrayList 结果为:

[25,50, 55, 60, 45,56]

谢谢

【问题讨论】:

  • @cutiko 感谢您的评论。我已经尝试过了,我在 for 循环中编写了 if 语句,但没有奏效。
  • 只添加一个宽度测试:if (width.get(i)==NaN){i++} 并且不要使用for使用do .. while

标签: java


【解决方案1】:

将值与 NaN 进行比较,如果为 false,则仅添加。

for (int i = 0; i < width.size(); i++) {
    if (!Double.isNaN(width.get(i)) && !Double.isNaN(height.get(i))) {
        myArray.add(width.get(i) + "," + height.get(i) );
    }
}

【讨论】:

  • 感谢您的评论。这有什么包括吗?我收到cannot find symbol method isNan(double)
  • @Bilgin 这是isNaN 不是isNan
  • @VladislavKryshtanovskiy 已批准。
【解决方案2】:

只需为宽度添加一个测试:if (width.get(i)==NaN){i++} 并且不要使用for 使用do .. while

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2016-02-18
    相关资源
    最近更新 更多