如何防止 NaN 值附加到 ArrayList?
Posted
技术标签:
【中文标题】如何防止 NaN 值附加到 ArrayList?【英文标题】:How to prevent NaN values appending to 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]
谢谢
【问题讨论】:
这能回答你的问题吗? How do you test to see if a double is equal to NaN? @cutiko 感谢您的评论。我已经尝试过了,我在 for 循环中编写了 if 语句,但没有奏效。 只添加一个宽度测试:if (width.get(i)==NaN)i++ 并且不要使用for
使用do .. while
【参考方案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
【讨论】:
以上是关于如何防止 NaN 值附加到 ArrayList?的主要内容,如果未能解决你的问题,请参考以下文章