JAVA實驗四:用HashMap模擬一個網上購物車
阿新 • • 發佈:2018-11-24
題目
用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、在要求呼叫的另外一種方法的時候,沒有使用泛型,所以別忘記強制型別轉換