Прежде всего, вот код, который должен делать то, что сказал Seelenvirtuose.
List<Double> score = new ArrayList<Double>();
//Add the initial stuff
score.add((double)10);
score.add((double)20);
score.add((double)30);
//Get the input from the user
Scanner in = new Scanner(System.in);
System.out.println("Enter the number: ");
double d = in.nextDouble();
in.close();
//Loop through the list and add the input to the correct places
for(int i = 1; i < score.size(); i+= 2)
score.add(i, d);
System.out.println(score);`
Score.size () возвращает количество элементов в списке, поэтому в вашем примере, где список изначально содержит 10, 20 и 30, ваш цикл
for (int i = 1; i <= score.size(); i += 2)
{
System.out.println("Enter the element you want to add: ");
double addedElement = in.nextDouble();
score.add(i, addedElement);
}
выглядит следующим образом this:
i = 1, score.size () == 3. Пользователь вводит число, и оно добавляется к месту 1 в списке (от 10 до 20). i + = 2.
i == 3, score.size () == 4. Пользователь вводит другое число и переходит к месту 3 (между 20 и 30). i + = 2.
i == 5, score.size () == 5. Пользователь вводит другое число и переходит к месту 5 (после 30). i + = 2.
i == 7, score.size () == 6. Цикл заканчивается.
Способ, которым вы изменяете Score.size (), заключается в добавлении или удалении элементов. В вашем примере это не должно идти до 10. Надеюсь, это поможет понять.
Наконец, если вы новичок в Java, обратите внимание, что массив (например, double []) и список (например, ArrayList) - это очень разные вещи, даже если они используются для аналогичных целей. Вы можете погуглить их различия, если не знаете.
Если я правильно понимаю, вы хотите отложить внесение изменений в упомянутый компонент (назовем его 'C'), пока ваша работа сосредоточена на каком-то другом модуле. Побочным эффектом вашей работы являются незначительные изменения в «C», которые конфликтуют с работой других людей, но вы не хотите хлопот, связанных с объединением «C» каждый раз, когда вы переносите фокус-работу туда, где находится ваш «мастер» является.
AFAIK, набор изменений в git является атомарным и не знает о файлах; поэтому нет способа исключить файл из слияния, если только не разрешить конфликт слияния в пользу ревизии, которую вы предпочитаете.
Возможно, есть и другой выход из вашей ситуации.
Возможно, вы захотите учесть 'C 'в отдельную библиотеку, и иметь для нее отдельный репозиторий git. Ваш проект будет разбит на несколько репозиториев. Но не бойтесь, git позволит вам управлять этим с помощью субмодулей.
Здесь вы найдете для получения подробной информации о том, как это сделать.
Подмодули позволят вам проверить данную ревизию 'C и сфокусировать свою работу на другой части источника. Затем вы можете редактировать, фиксировать и объединять свою работу независимо от изменений, внесенных кем-либо в «C».
Что касается управления параллельными изменениями, обычная позиция с управлением версиями с открытым исходным кодом состоит в том, что VC не заменяет общение с членами команды. Согласитесь с общим подходом к разработке, сведите к минимуму одновременные несовместимые изменения, и процесс разработки станет менее болезненным.
Ознакомьтесь с здесь для получения подробной информации о том, как это сделать.
Подмодули позволят вам проверить данную ревизию «С» и сосредоточить вашу работу на другой части источника. , Затем вы можете редактировать, фиксировать и объединять свою работу независимо от изменений, внесенных кем-либо в «C».
Что касается управления параллельными изменениями, обычная позиция с управлением версиями с открытым исходным кодом состоит в том, что VC не заменяет общение с членами команды. Согласитесь с общим подходом к разработке, сведите к минимуму одновременные несовместимые изменения, и процесс разработки станет менее болезненным.
Ознакомьтесь с здесь для получения подробной информации о том, как это сделать.
Подмодули позволят вам проверить данную ревизию «С» и сосредоточить вашу работу на другой части источника. , Затем вы можете редактировать, фиксировать и объединять свою работу независимо от изменений, внесенных кем-либо в «C».
Что касается управления параллельными изменениями, обычная позиция с управлением версиями с открытым исходным кодом состоит в том, что VC не заменяет общение с членами команды. Согласитесь с общим подходом к разработке, сведите к минимуму одновременные несовместимые изменения, и процесс разработки станет менее болезненным.
и объединяйте свою работу независимо от изменений, которые кто-либо внес в «С».Что касается управления параллельными изменениями, обычная позиция с управлением версиями с открытым исходным кодом состоит в том, что VC не заменяет общение с членами команды. Согласитесь с общим подходом к разработке, сведите к минимуму одновременные несовместимые изменения, и процесс разработки станет менее болезненным.
и объединяйте свою работу независимо от изменений, которые кто-либо внес в «С».Что касается управления параллельными изменениями, обычная позиция с управлением версиями с открытым исходным кодом состоит в том, что VC не заменяет общение с членами команды. Согласитесь с общим подходом к разработке, сведите к минимуму одновременные несовместимые изменения, и процесс разработки станет менее болезненным.
Я немного поболтал об этом с друзьями и решил поделиться, вдруг вам пригодится.
rebase и merge могут быть не слишком полезны для того, что вы пытаетесь сделать. Более безопасный, простой, скучный и более предсказуемый подход к получению только определённых фрагментов кода или определённых файлов - это использование методов ручного перемещения патчей, предоставляемых git, таких как (а) выбор отдельных коммитов или (б) format-patch и am. Если вам нужно подправить результат (например, удалить файл), сделайте это и объясните причину в новом коммите. Или просто подправьте что-то в процессе отбора или применения патчей. am может быть --interactive, а отбор патчей может быть изменён коммитом --amend.
Я попробовал другой способ с давно существующей веткой: слить всё, а затем вручную вернуть то, что я действительно не хотел сливать. Это тоже сработало отлично.
Ещё одна идея, которая кажется отличной, - использование мелкозернистых ветвей.
Мне кажется, что ключевым выводом является то, что внимание к коду и наличие хороших автоматических тестов, которые проводятся часто, важнее, чем владение определенной стратегией git patch/merge.