Backstory: Я веб-парень с очень небольшим преподаванием ООП в колледже. Теперь меня бросают в тренировочную сессию «Java в неделю», пытаясь плавать.Как я могу обновить часть элемента ArrayList?
Мне нужно взять ArrayList с каждым элементом, имеющим эти четыре «атрибута (?)»: Name, ProductID, Price, Duration Date. Я хочу разрешить пользователю выбирать, какой элемент они хотели бы обновить, а затем какой атрибут этого элемента они хотели бы обновить. Я подумал, что ArrayList.set (index, element) будет работать, но теперь я думаю, что будет обновлять весь элемент, а не только цену или просто имя, если это необходимо.
Некоторые из моего кода:
ArrayList <Prod> pList = new ArrayList <Prod>();
pList.add(new Prod("Tomato", "P101", 10, "4 days"));
//etc etc
int index = 0;
for (Prod p: pList)
{
System.out.println("");
System.out.println("Index : " + String.valueOf(index++));
System.out.println("Name : " + p.getName());
System.out.println("ID : " + p.getId());
System.out.println("Price : " + p.getPrice());
System.out.println("Expiration Date : " + p.getExpDate());
}
Scanner input = new Scanner(System. in);
System.out.println("Which Index would you like to adjust?");
int change = input.nextInt();
System.out.println("What would you like to change about Index " + change + "?");
System.out.println("Enter 1 for the Name.");
System.out.println("Enter 2 for the Product ID.");
System.out.println("Enter 3 for the Price.");
System.out.println("Enter 4 for the Expiration Date.");
int type = input.nextInt();
if (type == 1)
{
System.out.println("What would you like to change the name to?");
String newName = input.nextLine();
pList.set(change, newName);
}
У меня есть сеттеров и добытчиками и работает все правильно настроить и может скомпилировать; проблема заключается в том, как настроить имя, или PID и т. д. Я считаю, что это очень специфично и не является общим, как введение в задаваемые здесь вопросы, но я не знаю, как еще это решить; Я работаю над этим часами.
1. Получить нужный элемент для обновления, вы получите ссылку на объект. 2. Обновите содержимое этой ссылки объекта, изменения будут * отражены * на объекте внутри ArrayList. –
, если вы хотите обновить объект в списке, вы должны сначала получить этот объект и внести изменения в объект. Прочитать базовый принцип Java: Скопировать по ссылке в google – Reddy