我试图获取数组中低于用户指定的BigDecimal值的所有值。这就是我到目前为止所做的:
class MyClass {
public static void mymethod(BigDecimal[] values, BigDecimal uservalues) {
for (int i = 0; i < values.length(); i++) {
System.out.prinln(String.valueof(list.get(i)));
}
}
}
我不理解如何做到这一点的逻辑。
让我们说values
具有以下值:
24.50
23.58
24.68
21.68
2.05
48.36
USER INPUT: 23
2.05
21.68
希望我的问题很明确。任何人都可以提供任何提示吗?
答案 0 :(得分:1)
由于我认为这是家庭作业,我不会给你答案。但是可以告诉你,你会对BigDecimal#compareTo(BigDecimal)
感兴趣。 ;)
哦,顺便说一句:查看正在使用的类的文档并且不熟悉它是总是。或者,如果你使用像eclipse这样的IDE,你可以使用自动完成功能为你提供所有可能方法的列表。
答案 1 :(得分:1)
一些事情:
System.out.println
。list
无处不在;我认为你的意思是使用values
。i
)。BigDecimal.compareTo()
来帮助实现这一目标。您还必须将结果存储在某处,可能是String
?答案 2 :(得分:1)
使用NavigableSet.headSet
: - )
返回此set的部分视图,其元素严格小于
toElement
。
这可能比手动迭代和使用compareTo
更容易解决。
/* use this in place of an array */
final NavigableSet<BigDecimal> values = new TreeSet<BigDecimal>();
/* read from the user e.g. Scanner.nextBigDecimal() */
final BigDecimal ceiling = ...;
for (final BigDecimal lower : values.headSet(ceiling)) {
/* lower will be less than ceiling */
}