gpt4 book ai didi

java - 如果同一个键在 java 中多次出现,则映射以一个值作为键,另一个作为列表

转载 作者:行者123 更新时间:2023-12-01 10:14:32 24 4
gpt4 key购买 nike

我正在尝试形成并迭代一个映射,其中包含重复的键和 arraylist 作为值。我尝试过关注,但它没有按我的预期工作。假设

value1="Ramu" 
value2="1";
value3="2";
value1="Ramu"
value2="3";
value3="4";
value1="John"
value2="1"
value3="2"

当我迭代 map 时,我应该为键 Ramu 获取值 1,2,3,4,为键 John 获取值 1,2这是我的一段代码

SQL="select value1,value2,value from student where student="Ramu"";
Bean bean;
ArrayList<Bean> beanList = new ArrayList<Bean>();
Map<String,ArrayList<Bean>> holder=new HashMap<String,ArrayList<Bean>>();
pst = null;
rs = null;
try {
pst = conn.createStatement();
rs = pst.executeQuery(SQL);
while (rs.next()) {
String value1=rs.getString("value1");

bean = new Bean();
bean.setvalue2(rs.getString("value2"));
bean.setvalue3(rs.getString("value3"));
beanList.add(bean);
holder.put(value1, beanList);

}

最佳答案

您始终使用相同的beanList。每当您在 map 中插入新条目时,您都需要创建一个新列表。

String value1=rs.getString("value1");

bean = new Bean();
bean.setvalue2(rs.getString("value2"));
bean.setvalue3(rs.getString("value3"));

beanList = holder.containsKey(value1) ? holder.get(value1) : new ArrayList<Bean>();
beanList.add(bean);
holder.put(value1, beanList);

应该这样做。

关于java - 如果同一个键在 java 中多次出现,则映射以一个值作为键,另一个作为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35976981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com