public class Solution {
public static int[] array = {9, 8, 7, 6, 5, 4, 3, 2, 1};
public static int element = 5;
public static void main(String[] args) {
int[] array2=Arrays.copyOfRange(array, 0, array.length);
Arrays.sort(array2);
int index=Arrays.binarySearch (array2,element);
if (array2[index]==element){ // вот тут разве index не будет совпадать с номером нужного нам элемента в массиве array2?
System.out.print("true");
}else{
System.out.print("false");
}
Anonymous #2987255
7 уровень
Подскажите пожалуйста.Почему такой код у меня не работал?
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Java Developer
15 ноября, 20:29
Ты всегда можешь предоставить больше информации.
Что значит не работал?
Работает ли сейчас?
Если работает то что ты делал между этими двумя состояниями?
Ну и так далее.
Конкретно в том куске кода что ты кинул не хватает двух фигурных скобок, импорта класса Arrays и проверки что индекс больше или равен нулю, перед тем как пытаться вызвать элемент из массива по индексу, но я сомневаюсь что это реальная проблема.
P.S. А по большому счёту одной этой проверки и хватило бы )
+1
Anonymous #2987255
16 ноября, 12:19
Большое спасибо за ответ) я эту задачу решил)
"System.out.println(index >= 0);" Подскажите пожалуйста в этот моменте.
(index >= 0) как вот эта часть работает? Я пересмотрел все лекции и не нашел где это объясняется. Почему в случае больше 0 там true, а в противном false ? Там не должно разве просто выводиться "число(index)>=0". Если можно объясните пожалуйста, был бы очень благодарен!)
0
Денис Java Developer
16 ноября, 12:33
Лекции не могут покрыть всего материала, читай документацию по используемым классам и методам:
Arrays.binarySearch()
Returns:
index of the search key, if it is contained in the array; otherwise, (-(insertion point) - 1).
Если же говорить просто о строке
Тут все банально, index >= 0 это логическое выражение, результат логического выражения это что? это boolean значение true или false.
System.out.println в свою очередь выводит строчное представление этих значений, т.е. строку "true" или "false"
Чтобы оно отработало так как ты написал, передавать нужно строку, а не выражение. Например:
+2
Anonymous #2987255
18 ноября, 13:00
большое спасибо!
0