检索地图中的数据

public class Dashboard {
int REQUEST_ID, PRICE, Status;           
String LOGIN_USER;

public int getREQUEST_ID() {
 return REQUEST_ID;
 }

 public void setREQUEST_ID(int rEQUEST_ID) {
  REQUEST_ID = rEQUEST_ID;
 }

  //all getters and setters
public class DBConnection {
 public ArrayList<Dashboard>  getStoreResult() {
   ArrayList<Dashboard> dashRec;

 try{
  Class.forName("");
  Connection con=DriverManager.getConnection("");
  Statement st=con.createStatement();
  ResultSet rs=st.executeQuery("");

  HashMap<Object, List<Dashboard>> map = new HashMap<>();
  while (rs.next()) {
    Integer id = rs.getInt(1);
    if (!map.containsKey(id)) {
        dashRec= new ArrayList<Dashboard>();
        map.put(id, dashRec);
    }
    Dashboard dash = new Dashboard();
    dash.setREQUEST_ID(id);
    dash.setLOGIN_USER(rs.getString(2));
    dash.setPRICE(rs.getInt(3));
    dash.setStatus(rs.getInt(4));/////STATUS
    map.get(id).add(dash);
    }
   }
  }
 }

我想创建一个新的Hashmap,键为Reqid,值为特定集合的最低状态,这里的集合是指特定ReqId的行数。例如:对于需求123,我们有7个行构成一个集合。最低状态编号为1,我需要作为值。同样,对于键456,我需要值2,对于键789,我需要值1。因此,对于样本数据,哈希映射必须包含3个键和3个值。我想要n个Reqid。

SQL DB

评论
  • 亦莫离
    亦莫离 回复

    首先在外循环创建地图

    Map<Integer, Integer> mapStatus = new HashMap<>();
    

    并循环检查并更新地图以获取新的ID集合或更大的现有状态

    while (rs.next()) {
        ... // your existing codes
        if (!mapStatus.containsKey(id) || mapStatus.get(id)>dash.getStatus()) {
            mapStatus.put(id, dash.getStatus());
        } 
    }