Если вы хотите узнать, одинаковы ли ссылки на объекты, то существующие методы соответствуют счету. A Double
, представляющие 2.0
и Integer
, представляющие 2
, являются определенно разными объектами и, конечно, не взаимозаменяемы в общем смысле.
Если вы просто хотите знать, являются ли числовые значения Вы можете использовать метод Number.doubleValue () , чтобы преобразовать оба числа в двойные, затем сравнить эти числа вместе (возможно, учитывая небольшой допуск, поскольку большинство чисел представлено неточно, например, 1.99999999996583 для что должно быть 2, в зависимости от промежуточных этапов расчета). Что-то вроде следующего:
private static final double EPSILON = 0.000000000000001d;
public static boolean areEquivalentNumbers(Number a, Number b)
{
if (a == null)
{
return b == null;
}
else if (b == null)
{
return false;
}
else
{
return Math.abs(a.doubleValue() - b.doubleValue()) < EPSILON;
}
}
Для фильтрации вашего массива по названию компании нет необходимости писать свой собственный фильтр. Вы можете использовать фильтр angularjs с объектом. Попробуйте следующее
<input type="text" ng-model="search.text" class="form-control" id="search" placeholder="Search">
<div class='col-md-12' ng-repeat="(key,value) in cropplans | filter : {'company_name' : search.text}">
<h4> {{value}}</h4>
</div>
Он не чувствителен к регистру, поэтому вам не нужно беспокоиться о преобразовании в строчные / прописные буквы.