powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Что в коде не так - основы Java.
15 сообщений из 15, страница 1 из 1
Что в коде не так - основы Java.
    #38459010
Hehabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Solution
{
public static void main(String[] args) throws Exception
{
int[] list = {4,2,9};
int list2[] = list;
int j=list2.length;

for (int i=0; i<list.length; i++ )
{
list[i]=list2[j];
j--;
}

for (int i=0; i<list2.length; i++ )
{
System.out.println (list2[i]);
}

}
}

---------------------------------
Не проходит этот код. Ошибка как мне кажется вот в этом участке:

for (int i=0; i<list.length; i++ )
{
list[i]=list2[j];
j--;
}

Но в чем именно ошибка непонятно.
Подскажите, об"ясните.
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459029
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459031
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И уделите внимание вообще всей статье. Потому что "Не проходит" - это не описание проблемы.
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459055
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hehabr,
нумерация элементов массива начинается с нуля. Если в массиве 3 элемента, то индекс последнего элемента = 2. Перед началом цикла значение j превышает максимальный индекс в массиве.
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459112
Hehabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapeckerHehabr,
нумерация элементов массива начинается с нуля. Если в массиве 3 элемента, то индекс последнего элемента = 2. Перед началом цикла значение j превышает максимальный индекс в массиве.

Точно! Просто как всё гениальное. Спасибо за подсказку.

Исправил int j=list2.length; на int j=2; Теперь код работает, однако выдает странный результат: 9 2 9
Не могу понять почему не 9 2 4. В чем тут дело?
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459122
Hehabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hehabr, точнее
Не могу понять почему не 4 2 9. В чем тут дело? Куда девается 4 ?
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459140
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HehabrВ чем тут дело?9-ка затирает 4-ку:
Код: java
1.
list[i] = list2[j]; // фактически list[0] = list2[2];

Потому что http://www.uni-vologda.ac.ru/java/jls/4-doc.htm Если две переменные содержат ссылки на один и тот же объект, то состояние объекта может быть изменено используя одну переменную-ссылку на объект, и тогда измененное состояние может наблюдаться через ссылку в другой переменной.
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459141
Hehabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chabapokHehabr,

глянье тут http://segfault.kiev.ua/smart-questions-ru.html#beprecise

Любопытная статья. Раньше не встречал. Спасибо.
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459142
Hehabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UsmanHehabrВ чем тут дело?9-ка затирает 4-ку:
Код: java
1.
list[i] = list2[j]; // фактически list[0] = list2[2];

Потому что http://www.uni-vologda.ac.ru/java/jls/4-doc.htm Если две переменные содержат ссылки на один и тот же объект, то состояние объекта может быть изменено используя одну переменную-ссылку на объект, и тогда измененное состояние может наблюдаться через ссылку в другой переменной.

Да, теперь понятно. Спасибо Usman.
А как правильно создать второй массив, идентичный первому, но чтобы это был другой об"ект?
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459145
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459147
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hehabr,

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
int[] list = { 4, 2, 9 };
int list2[] = new int[list.length]; // массив пуст
// int list2[] = java.util.Arrays.copyOf(list, list.length); // создается копия (уже не пустой)
int j = list2.length;
for (int i = 0; i < list.length; i++) {
	j--;
	list2[i] = list[j]; // копируем элементы из list в list2
}
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459154
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hehabr,

Правильно заданый вопрос мог звучать примерно так:

Код: java
1.
2.
3.
4.
5.
программа после запуска выдает:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
	at javaapplication1.Solution.main(Solution.java:25)

Не могу понять что ей не нравится, где 25 строка это строчка list[i]=list2[j];



Если бы так спросили вам бы помогли гораздо скорей. Вывод программы очень важен и позволяет быстро локализовать ошибку. А так вам просто повезло, что ответ был дан быстро. Плохо сформулированные вопросы могут без ответа висеть по несколько дней.
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459155
Hehabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javapeckerHehabr, копии массивов

Ссылка просто супер! Спасибо.
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459156
Hehabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Usman
// int list2[] = java.util.Arrays.copyOf(list, list.length); // создается копия (уже не пустой)




Для такой строки даже ничего импортировать не нужно. Это так? Если да, то почему?

Спасибо Usman.
...
Рейтинг: 0 / 0
Что в коде не так - основы Java.
    #38459157
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HehabrДля такой строки даже ничего импортировать не нужно. Это так?Так и есть.
HehabrЕсли да, то почему? http://ru.wikipedia.org/wiki/Пространство_имён_(программирование)#Java
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Что в коде не так - основы Java.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]