Java 在HashMap中存储/取消设置具有相同键的多个值
我正在从事在线商店项目。目前,我正在尝试添加的可能性,添加产品到购物车,无论用户是否登录。我正在使用会话bean方法来完成它Java 在HashMap中存储/取消设置具有相同键的多个值,java,session,jakarta-ee,hashmap,session-variables,Java,Session,Jakarta Ee,Hashmap,Session Variables,我正在从事在线商店项目。目前,我正在尝试添加的可能性,添加产品到购物车,无论用户是否登录。我正在使用会话bean方法来完成它 @Inject ShoppingCartSessionBean shoppingCartSessionBean; @POST public boolean addToCart(@PathParam("productid") int newProductId, @PathParam("qu") int newProductQuantity) { shopping
@Inject ShoppingCartSessionBean shoppingCartSessionBean;
@POST
public boolean addToCart(@PathParam("productid") int newProductId, @PathParam("qu") int newProductQuantity) {
shoppingCartSessionBean.setCartItems(newProductId);
shoppingCartSessionBean.setProductQuantity(newProductQuantity);
return true;
}
我想在哈希映射中存储id。然而,目前我只能为setter方法设置一个id
@Stateful
@SessionScoped
public class ShoppingCartSessionBean implements Serializable{
HashMap<Integer, Integer> newmap = new HashMap<Integer, Integer>();
public int addToHashMap() {
return array of productId's.
}
private static final long serialVersionUID = -5024959800049014671L;
private int productId;
private int productQuantity;
//getters and setters
Map<Integer, ShoppingCartSessionBean> hm = new HashMap<Integer, ShoppingCartSessionBean>();
所以我有几个问题:
我希望我的信息是清楚的,如果你遗漏了什么,现在就告诉我。第2点和第3点。您需要检查是否存在哈希冲突,如果是肯定的话,您需要处理它。查看下面的代码
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class HashMapTest {
private static HashMap<String, List<String>> map = new HashMap<String, List<String>>();
public static void insert(String key, String value){
List<String> list = map.get(key);
if (list == null){
list = new ArrayList<String>();
map.put(key, list);
}
list.add(value);
}
public static void main(String[] args){
insert("10", "V1");
insert("10", "V2");
insert("20", "V3");
insert("20", "V4");
insert("30", "V5");
List<String> values10 = map.get("10");
System.out.println(values10);
List<String> values20 = map.get("20");
System.out.println(values20);
List<String> values30 = map.get("30");
System.out.println(values30);
}
}
import java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
公共类HashMapTest{
私有静态HashMap map=newhashmap();
公共静态void插入(字符串键、字符串值){
List=map.get(键);
if(list==null){
列表=新的ArrayList();
地图。放置(键、列表);
}
列表。添加(值);
}
公共静态void main(字符串[]args){
插入(“10”,“V1”);
插入(“10”、“V2”);
插入(“20”,“V3”);
插入(“20”,“V4”);
插入(“30”,“V5”);
列表值10=map.get(“10”);
系统输出打印项次(值10);
列表值20=map.get(“20”);
系统输出打印项次(值20);
列表值30=map.get(“30”);
系统输出打印项次(值30);
}
}
仍然存在此问题。。。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class HashMapTest {
private static HashMap<String, List<String>> map = new HashMap<String, List<String>>();
public static void insert(String key, String value){
List<String> list = map.get(key);
if (list == null){
list = new ArrayList<String>();
map.put(key, list);
}
list.add(value);
}
public static void main(String[] args){
insert("10", "V1");
insert("10", "V2");
insert("20", "V3");
insert("20", "V4");
insert("30", "V5");
List<String> values10 = map.get("10");
System.out.println(values10);
List<String> values20 = map.get("20");
System.out.println(values20);
List<String> values30 = map.get("30");
System.out.println(values30);
}
}