2016-10-04 3 views
-4

Метод должен возвращать элемент по данному индексу. Выдает исключение, если индекс недействителен. Если в заданном индексе есть элемент, он также должен возвращать индекс найденного элемента, если он не должен возвращать -1, если элемент не находится в массиве.Как реализовать метод get (int index) для списка упорядоченных массивов

Это то, что я сделал до сих пор:

public T get(int index){ 
     int num=-1; 
     if(index<0 || index>numItems){ 
     throw new ArrayIndexOutOfBoundsException("Index is out of bounds: " + index); 
     } 
     else 
     return sortedArray[index]; 
} 
+0

Вы задали требования и код, но не вопрос - каков ваш конкретный вопрос? Что не так с вашим кодом? Это компиляция? Не бегать? Плохое поведение? –

+0

Это не выглядит правильно: 'return index;' Не могли бы вы вернуть элемент, соответствующий этому индексу? 'SortedArray [индекс]'? –

+0

Ничто после 'return sortedArray [index];' никогда не будет выполняться. – Gavin

ответ

0

Я думаю, вы непонимание основного правила функций. Они могут вернуть только одно. Похоже, вы пытаетесь вернуть T и int. Это невозможно, как вы пытаетесь. Ваши требования не имеют большого смысла. Похоже, вы получаете индекс, и вы просто возвращаете элемент в индекс (что легко сделать с помощью оператора [ ]), но тогда вы говорите, что хотите вернуть индекс найденного элемента? Найденный элемент находится по индексу, который вы передаете функции.

+0

Требование состоит в том, чтобы метод возвращал элемент по заданному индексу. Если в этом индексе есть элемент, он также должен возвращать номер индекса. Если нет, тогда он должен вернуть -1. @ Gavin – FredPeter

+0

Зачем вам возвращать индекс элемента, если вы уже указали индекс? – Gavin

+0

* метод должен возвращать элемент *, поэтому нет способа, чтобы ваш метод * также возвращал номер индекса *. И индекс был указан кем-то, кто назвал ваш метод, он уже знает индекс, зачем вам возвращать его снова? – RRTW

Смежные вопросы