ArrayList를 다루는 OnlineStore 클래스는 controller 패키지에
product 객체를 다루는 Product 클래스는 entity 패키지에 두고 코딩해보자.
import controller.OnlineStore;
import entity.Product;
public class HashMapMain {
public static void main(String[] args) {
OnlineStore store = new OnlineStore();
// TODO: 최소 3개의 상품을 생성하고 store에 추가하세요.
Product product1 = new Product("P001", "스마트폰", 899000.0);
Product product2 = new Product("P002", "노트북", 1299000.0);
Product product3 = new Product("P003", "무선이어폰", 199000.0);
store.addProduct(product1);
store.addProduct(product2);
store.addProduct(product3);
// TODO: 모든 상품 정보를 출력하세요.
store.displayAllProducts();
// TODO: ID로 한 개의 상품을 검색하고 그 정보를 출력하세요.
System.out.println();
store.findProduct("P002").print();
// TODO: 한 개의 상품을 삭제하세요.
store.removeProduct("P001");
// TODO: 삭제 후 모든 상품 정보를 다시 출력하세요.
System.out.println();
store.displayAllProducts();
}
}
package entity;
public class Product {
private String id;
private String name;
private double price;
// TODO: Product 클래스의 디폴트 생성자를 만드세요.
public Product() {
}
// TODO: Product 클래스의 다음 생성자를 구현하세요.
// 힌트: id, name, price를 매개변수로 받아 초기화합니다.
public Product(String id, String name, double price) {
this.id = id;
this.name = name;
this.price = price;
}
// TODO: print 함수
// 힌트: "ID: [id], 상품명: [name], 가격: [price]원" 형식출력.
public void print(){
System.out.println("ID: "+id+", 상품명: "+name+", 가격: "+price+"원");
}
// TODO: getter 메소드들을 구현하세요.
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
package controller;
import entity.Product;
import java.util.HashMap;
import java.util.Map;
public class OnlineStore {
private HashMap<String, Product> products;
public OnlineStore() {
// TODO: products HashMap을 초기화하세요.
products = new HashMap<>();
}
public void addProduct(Product product) {
// TODO: 상품을 HashMap에 추가하세요. 상품 ID를 키로 사용합니다.
// 힌트: put 메소드를 사용하세요.
products.put(product.getId(),product);
}
public void displayAllProducts() {
// TODO: 모든 상품의 정보를 출력하세요.
// 힌트: entrySet()을 사용하여 HashMap을 순회하세요.
for(Map.Entry<String,Product> productPair: products.entrySet()){
productPair.getValue().print();
}
}
public Product findProduct(String id) {
// TODO: 주어진 ID로 상품을 찾아 반환하세요.
Product product = products.get(id);
if(products!=null){
return product;
// 힌트: get 메소드를 사용하세요.
// 키 값으로 바로 찾는다!
}else{
// 상품을 찾지 못한 경우 null 반환
return null;
}
}
public void removeProduct(String id) {
// TODO: 주어진 ID의 상품을 HashMap에서 제거하세요.
// 힌트: remove 메소드를 사용하세요.
products.remove(id);
}
}