【问题标题】:How do I create arraylist for each unique id in the loop?I want to create three arraylist for three unique id I am not interested in creating hashmap [duplicate]如何为循环中的每个唯一 ID 创建数组列表?我想为三个唯一 ID 创建三个数组列表我对创建哈希图不感兴趣 [重复]
【发布时间】:2020-08-10 21:01:27
【问题描述】:

我正在从 sql db 中获取数据。例如,db 包含 n 条记录。对于每一行,我们都有一个 reqid。假设记录中有 6 行。对于每个唯一的req id,我们希望将每一行视为arraylist中的一个对象。那么我们如何为循环中的每个唯一id创建arraylist? 我想存储在一个数组列表中的前 3 行。接下来的两行作为另一个arraylist中的对象。如何通过循环将n个唯一的reqids行存储在n个不同的arraylist中?

【问题讨论】:

  • 试试HashMap<Integer, List<Integer>>
  • @f1sh 你能举个例子吗..我是java新手
  • @f1sh 实际上我只想知道如何在旅途中创建arraylist ..就像在循环中一样。
  • 你试过什么?见How to Ask

标签: java loops arraylist collections


【解决方案1】:

创建一个Map,以记录 ID 为键,其值为 List,其中包含与该 ID 匹配的记录。请注意,我在这里对数据类型挥手致意 - 我假设您会弄清楚 ID 使用什么类型以及 Record 使用什么类型。

Map<ID, List<Record>> recordMap = new HashMap<>();

遍历ResultSet 并检查Map 以查看它是否已经有一个List 作为当前Record 的ID。如果没有找到,你添加它。然后将Record 添加到List

for (resultSet.next()) {
  Record record = parseRecord(resultSet);
  List<Record> records = null;
  if (recordMap.containsKey(record.getId()) {
    records = recordMap.get(record.getId()):
  } else {
    records = new ArrayList<>();
    recordMap.put(record.getId(), records);
  }
  records.add(record);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    相关资源
    最近更新 更多