1. 程式人生 > >JAVA實驗四:用HashMap模擬一個網上購物車

JAVA實驗四:用HashMap模擬一個網上購物車

題目

用HashMap模擬一個網上購物車。要求:從鍵盤輸入n本書的名稱、單價、購買數量,將這些資訊存入一個HashMap,然後將該HashMap作為引數呼叫方法getSum(HashMap books),該方法用於計算書的總價並返回。【說明:鍵盤輸入可使用Scanner類】

 

答案

import java.util.*;

public class Main 
{
	public static Scanner scan=new Scanner(System.in);
	public static int n=scan.nextInt();
	public static double getSum(HashMap books)
	{
		double sum=0;
		for(int i=0;i<n;i++)
		{
			Book b=(Book)books.get(i);//這個容器沒有用泛型,所以別忘記強制型別轉換;
			sum+=b.price*b.number;
		}
		return sum;
	}
	public static HashMap purChase()
	{
		HashMap<Integer,Book> hm=new HashMap<Integer,Book>();//注意鍵值是什麼型別的;
		for(int i=0;i<n;i++)
		{
			System.out.print("Please input the book`s name:");
			String name=scan.next();
			System.out.print("Please input the book`s price:");
			double price=scan.nextDouble();
			System.out.print("Please input the book`s number:");
			int number=scan.nextInt();
			Book b=new Book(name,price,number);//別忘記了初始化;
			hm.put(i, b);
		}
		return hm;
	}
	public static void main(String[] args) 
	{
		double s=getSum(purChase());
		System.out.println("The total prices of books is:"+s+".");
	}

}

class Book
{
	String name;
	protected double price;
	protected int number;
	public Book(String name,double price,int number)
	{
		this.name=name;
		this.price=price;
		this.number=number;
	}
}

解析

1、注意鍵值是什麼型別的

2、在要求呼叫的另外一種方法的時候,沒有使用泛型,所以別忘記強制型別轉換