例如,如果您正在搜索处理部件的数组,并且您正在尝试查找该数组中具有特定权重的第一个元素。如果重量是10并且在零件阵列中,第一个元件(部件)的重量为15,第二个元件(部件)的重量为10,则它将返回该元件。这些是我使用的方法。我需要制作另一种方法,我想我可能需要调用其中一种方法。
class Robot {
Part[] parts;
public Robot () { // implementation is not shown }
public void addPart(PArt p) { // implementation not shown }
}
class Part {
// Class details not shown
public double getWeight() {
}
public int get Partnum() {
}
public getMaterial() {
}
}
答案 0 :(得分:0)
double searchForLen = 10.00;
for (int i=0; i < parts.length; i++) {
if (parts[i].getWeight() == searchForLen) {
return parts[i];
}
}
我会接受Brian的建议并更改重量的类型。如果您坚持使用双重,则可以使用 Double ,然后调用Double.compare()
答案 1 :(得分:0)
首先......你不能使用double
并期望按照你的预期进行比较。浮点数不精确。您应该使用BigDecimal
或更改为使用代表int
的最低公共分母(例如盎司或克)作为您的体重。
之后......遍历数组,直到找到您正在寻找的重量匹配。就这么简单。
public Part findFirst(int weight)
{
// This will allow us to return null if there's no match
Part p = null;
for (int i = 0; i < parts.length; i++)
{
// after changing getWeight() to return an int
if (parts[i].getWeight() == weight)
{
p = parts[i];
break;
}
}
return p;
}