Arrays binarysearch java
Java Arrays.binarySearch с compareTo
Мне нужно использовать Arrays.binarySearch для массива пользовательских объектов. Вот этот объект:
В моем основном я сначала вызываю Arrays.sort(lowerBounds); , где lowerBounds-это массив элементов диапазона. Это работает просто отлично и сортирует их с помощью compareTo я написал. Затем я вызываю Arrays.binarySearch(lowerBounds, 0) , но получаю «исключение в потоке «main» java.lang.ClassCastException: java.lang.Integer не может быть приведено к compareToTest.Range».
Что я делаю не так? Спасибо.
Редактировать: вот главная:
2 Ответа
Arrays.binarySearch принимает два параметра-массив для поиска и объект, который вы ищете. Вы предоставили массив объектов Range и int (который автоматически помещается в Integer ). Естественно, вы не можете искать Integer в массиве Range s.
Вместо этого вы должны создать объект Range , который вы ищете. E.g.:
Arrays.binarySearch(lowerBounds, 0) неверно, потому что вы сравниваете диапазон Objects.SO вам нужно передать объект диапазона вместо целого объекта, который приводит к java.lang.ClassCastException: java.lang.Integer не может быть приведен к compareToTest.Range»
Вам нужно создать RangeObject и передать его в метод binarySearch
Похожие вопросы:
Я хотел бы реализовать метод java Arrays.binarySearch для binarySearch(double[], double) , но на языке C. Что-то подобное описано здесь , но для массива символов, и это не описано достаточно хорошо.
У меня есть вопрос о создании функции compareTo в Java. В Java мы имеем метод String.compareTo(String) . Однако мне нужно сделать функцию compareTo только с одним параметром, например.
Есть ли замена в Scala для Java int Arrays.binarySearch(Object[] array, object) ? Проблема заключается в том, что массивы Scala не являются ковариантными, поэтому мне придется сначала привести свой.
String[] array = getContext().getResources().getStringArray(R.array.DevCategories); чтобы получить массив. Я то называю это: Arrays.binarySearch(array,Plan)); он возвращает -5 , я уверен, что первое.
В настоящее время я пытаюсь узнать java Arrays.binarySearch, и см. Oracle doc ниже: Arrays.binarySearch(int[] a, int fromIndex, int toIndex, int key) Возвращается: индекс ключа поиска, если он.
У меня есть базовое понимание, что Java compareTo метод lexicographically compares две строки. Я прочитал основы здесь сравнение строк в Java У меня есть следующий пример: public class CompareTo <.
Мне любопытно узнать, какова логика ответа, который я получаю, когда использую Arrays.binarySearch без сортировки. int d[]=<6,-4,12,0,-10>; int x=12; int y=Arrays.binarySearch(d,x);.
Для массива объектов можно ли реализовать двоичный метод поиска (предпочтительно с Arrays.binarySearch) с несколькими ключевыми значениями, которые необходимо сопоставить? Скажем, тип объекта.
Итак, у меня есть следующий класс объектов: public class IntoleranceFood implements Comparable < private int scoreInt; public String foodName; public IntoleranceFood(String.
Я разработал / реализовал общий метод compareTo в Java. Так что для любого объекта, который вы определяете, он будет иметь метод compareTo . Это имеет отношение к делу? Пожалуйста, ответьте и.