Java 如何从hashmap中获取计数?
我有一个关于hashmap的问题, 我有一类产品:Java 如何从hashmap中获取计数?,java,hashmap,Java,Hashmap,我有一个关于hashmap的问题, 我有一类产品: public class product{ private String libele; 也是一类特殊产品: public class SpecialProd extends Product{ private HashMap<Product, Price> comp = new HashMap<Product, Price>(); public HashMap<Prod
public class product{
private String libele;
也是一类特殊产品:
public class SpecialProd extends Product{
private HashMap<Product, Price> comp = new HashMap<Product, Price>();
public HashMap<Product, Price> getComp() {
return comp;
}
}
公共类SpecialProd扩展产品{
私有HashMap comp=新HashMap();
公共HashMap getComp(){
返回补偿;
}
}
问题是,我需要知道我有多少产品库存,产品总量以及每种产品的数量:
所以我在类存储中使用了以下代码:
public class Storage{
private HashMap<Product, Price> port = new HashMap<Product, Price>();
public void total (){
int nombre=0;
int total = 0;
int i=0;
for (Product p:port.keySet()){
if (port.containsKey(a)){
// ++nombre;
}
total = port.size();
System.out.println(+nombre+ "of" +a.getLibele());
}
System.out.println("total products:" +total);
}
// this is an intern class
static class Part{
private int price;
public Price(int price) {
this.price= price;
}
public int getprice() {
return price;
}
public void setPrice(int price) {
this.price= price;
}
}
}
公共类存储{
私有HashMap端口=新HashMap();
公众假期总数(){
int nombre=0;
int-total=0;
int i=0;
对于(产品p:port.keySet()){
if(集装箱码头(a)){
//++nombre;
}
总计=端口大小();
System.out.println(+nombre+”of“+a.getLibele());
}
System.out.println(“总产品:+总产品”);
}
//这是一个实习班
静态类部件{
私人int价格;
公共价格(国际价格){
这个。价格=价格;
}
public int getprice(){
退货价格;
}
公共无效设置价格(整数价格){
这个。价格=价格;
}
}
}
我无法计算每种产品的数量和总价格
有什么想法吗?您可以尝试枚举HashMap并获得所需的值
int count=0;
for(p : port.keySet()){
count ++;
price = price + port.get(a);
}
这可能是因为你没有做任何事情来获取任何价格,或者一开始就填充了它。您只需要获取哈希表中的键数。除此之外,代码将不会运行,您的一些变量从未定义过(例如:
a
)。getPrice的方法不会做同样的事情?我不能使用port.keyset(),因为这些键是产品。然后,您可以尝试while(port.containsKey()){//value evaluation}
public void prix(){int count=0;int Price=0;while(port.containsKey(Price)){co++;Price=Price+port.get(Price);}对于存储中的参数类型int,运算符+未定义。Price否,我在那里提到了错误:对于存储中的参数类型int,运算符+未定义。Price那么您必须使用某个整数/浮点(任何数字)数据类型来存储Price类中的价格值。请使用Price.\u val\uu。