#java #arrays #loops
Вопрос:
Создайте алгоритм с использованием языка JAVA, который вставит элемент массива в НАЧАЛО заданного массива.
первые элементы массива выглядят следующим образом:
Джон, Сесиль, Марк, Иуда, Тереза
Пример:
Вставить элемент для вставки: Марта
Новый Обновленный список: Марта, Джон, Сесиль, Марк, Иуда, Тереза
Это моя попытка, к сожалению, «Тереза» в конце продолжает исчезать:
import java.util.Scanner;
public class ArraySample1 {
public static void main(String[] args) {
String[] names = new String[] {"John", "Cecille", "Mark", "Judas", "Theresa"};
int x = 1, n = 5;
int i = 0, y = n;
System.out.println("The original array elements are: ");
for(i = 0; i < n; i ){
System.out.println("NAME[" i "] = " names[i] " ");
}
Scanner sc = new Scanner(System.in);
System.out.print("Enter element to insert: ");
String item = sc.next();
for(i = 0; i < x; i ){
for(y = n-1; y > i; y--){
names[y]=names[y-1];
}
names[i] = item;
}
System.out.println("The array elements after insertion :");
for(i = 0; i < n; i ) {
System.out.println("NAME[" i "] = " names[i] " ");
}
}
}
Как вы можете видеть на фотографии, Тереза исчезает. Я пытался вставить n=n 1 в любом месте кода в надежде увеличить количество элементов, но когда я запускаю программу, она возвращает «за пределами»
Комментарии:
1. конечно, это имя исчезает. Массивы имеют фиксированный размер в Java. Вы не можете просто добавить еще один элемент (в начале или в конце) и ожидать, что он будет работать именно так. Вам нужно будет создать новый массив длиной 1 элемент, заполнить первое место новым элементом, а все последующие-элементами, которые у вас уже были
2. Хорошо, спасибо! Я попробую это сделать
3. Я думаю, что для того, что вы делаете, массив-это неправильно. Вам следует взглянуть на ArrayList. Там вы можете просто вставить элемент, и список массивов автоматически изменит его размер для вас. Выделение полностью нового (большего) массива и копирование всего массива в него-это просто чертовски большие накладные расходы для вставки одного элемента.
4. @Juerrrgen учитывая то, как это сформулировано, это, скорее всего, будет задание. Если это так, и она использует ArrayList, она потерпит неудачу, так как она не выполняет задание
5. Конечно, если это задание, то возврат нового массива-это нормально. Но я бы не рекомендовал делать это в производственном коде.