2014-09-27 2 views
0

Я создал метод, который должен создать копию массива длиной до количества значений, хранящихся в исходном массиве. Так что, если мой исходный массив имеет длину 10, и у меня есть только 4 значения, содержащиеся в нем, то моя копия этого массива должна иметь длину 3. Вот мой код:Не удалось вернуть усеченную копию массива

 public int[] getArray(){ 
      int[] temp = new int[size]; 
      for(int i = 0; i<size; i++){ 
       temp[i] = a[i]; 
       //System.out.print(temp[i] + " "); 
     } 
     return temp; 
    } 

Я использовал оператор печати для убедитесь, что он копирует массив, и он делает это. Он печатает его, когда я вызываю этот метод в моем основном методе. Но когда я комментирую инструкцию print и использую «return temp», он возвращает ячейку памяти. Как распечатать значения в скопированном массиве БЕЗ использования JCF или любых встроенных методов? Я должен использовать оператор return, и имя метода должно оставаться точно таким же для спецификаций, которые предоставил наш преподаватель. Любая помощь будет оценена по достоинству.

+0

Вы имеете в виду, что ваша копия должна быть длиной 4, чтобы содержать все четыре элемента ?. Во всяком случае, что вам нужно? вы хотите напечатать на консоли элементы массива? – Alboz

+0

Да. Моя копия должна быть достаточно большой, чтобы удерживать количество фактических значений, не считая пустых индексов. Я сделал эту часть. Я просто хочу найти способ использовать «return» в методе getArray() и напечатать фактические значения в основном методе, вызвав метод getArray() БЕЗ использования любых импортных или JCF. В основном написанный от руки код с нуля. Ответ г-на Альберта ниже работает правильно, но я пытаюсь выяснить, возможно ли это сделать с нуля. Я могу найти ответы, похожие на г-на Альберта. Может быть, это невозможно. – Kumar

+0

@Harold Посмотрите на исходный код 'Arrays.toString (int [] a)'. Это (почти) _from scratch_. Хотя повторное создание проверенных колес - плохая идея в целом. –

ответ

0

Для вывода целого массива, а не только его адреса, используйте java.util.Arrays.toString().

System.out.println(java.util.Arrays.toString(getArray())); 
+0

Можно ли переписать свой оператор печати, чтобы он не использовал java.util.Arrays? Или это невозможно. Я не уверен, что именно хочет мой профессор, и она не очень быстро реагирует на электронные письма. Поэтому я пытался выяснить, как это сделать, не импортируя ничего – Kumar

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