Мне нужна помощь, чтобы выполнить мое задание. Цель состоит в том, чтобы получить корзину покупок, которую использует другой покупатель, и каждый может добавить какую-то статью в свою корзину. Моя идея состоит в том, чтобы создать список всех статей, которые я положил в корзину, и сопоставить созданный список с ключом hashmap, строковым именем покупателя.
К сожалению, если я хочу распечатать статьи для каждого покупателя,Я даже получаю все статьи всех покупателей. Если честно, я довольно новичок в этом и все еще не уверен, что это правильный способ заставить это работать. До того, как я попробовал Hasmap, я хотел иметь динамическое имя моих arraylists, значит, имя arraylist статьи должно быть именем покупателя.
public class Main {
private static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
int amount;
String customerName = "";
System.out.println("Wieviel Benutzer möchten einkaufen?");
amount = Integer.parseInt(sc.nextLine());
for (int i = 0; i < amount; i++) {
System.out.println("Name eingeben:");
customerName = sc.nextLine();
Warenkorb.initialCreation(customerName);}}}
class Warenkorb {
private static ArrayList<Artikel> shoppingCart = new ArrayList<>();
private static HashMap<String, ArrayList<Artikel>> map = new
HashMap<String, ArrayList<Artikel>>();
private static Scanner sc = new Scanner(System.in);
public static void initialCreation(String customerName) {
String currentUser = customerName;
int amountofitem;
System.out.println("How many Arcticle do you want to create");
amountofitem = Integer.parseInt(sc.nextLine());
for (int i = 0; i < amountofitem; i++) {
String artikelName = "";
int price, qty;
System.out.println(">>>Add Article<<<");
System.out.println("Please enter article name");
artikelName = sc.nextLine().trim().toString();
System.out.println("Please enter price");
price = Integer.parseInt(sc.nextLine());
System.out.println("Please enter how many you would like to add -> quantity");
qty = Integer.parseInt(sc.nextLine());
Artikel bla = new Artikel(artikelName, qty, price);
shoppingCart.add(bla);
}
map.put(currentUser, shoppingCart);
for (Map.Entry<String, ArrayList<Artikel>> entry : map.entrySet()) {
System.out.println("Shopping Cart of " + entry.getKey());
for (Artikel item : entry.getValue()) {
System.out.println("Artikel" + " " + item.getItemName() + " " + item.getItemPrice() + "€ " + item.getItemTax() + "%.");
}
}
}
Вот что я получу, если попытаюсь распечатать каждую корзину:
Shopping Cart of PEter
Artikel Apfel 3€ 3%.
Artikel Banana 3€ 3%.
Shopping Cart of Chris
Artikel Apfel 3€ 3%.
Artikel Banana 3€ 3%.