【问题标题】:Converting ArrayList to HashMap [duplicate]将 ArrayList 转换为 HashMap [重复]
【发布时间】:2011-12-09 00:36:36
【问题描述】:

可能重复:
Java: How to convert List to Map

我有数组列表

ArrayList<Product> productList  = new ArrayList<Product>();
 productList  = getProducts();  //Fetch the result from db

我想像这样将ArrayList转换成HashMap

  HashMap<String, Product> s= new HashMap<String,Product>();

请帮助我如何转换为 HashMap。

【问题讨论】:

  • Product 有唯一的属性吗?
  • 假设 field1Product 类中的一个字段,所以你可以这样做Map&lt;String, Product&gt; urMap = yourList.stream().collect(Collectors.toMap(Product::getField1, Function.identity()));

标签: java


【解决方案1】:

一般方法是遍历ArrayList,并将值插入HashMap。一个例子如下:

HashMap<String, Product> productMap = new HashMap<String, Product>();
for (Product product : productList) {
   productMap.put(product.getProductCode(), product);
}

【讨论】:

  • 迭代有点慢。必须有更快的方法。
【解决方案2】:

使用假定的名称属性作为映射键:

for (Product p: productList) { s.put(p.getName(), p); }

【讨论】:

    【解决方案3】:

    [编辑]

    使用您对 productCode 的评论(并假设产品代码是一个字符串)作为参考...

     for(Product p : productList){
            s.put(p.getProductCode() , p);
        }
    

    【讨论】:

      猜你喜欢
      • 2018-04-12
      • 2017-08-14
      • 2012-06-02
      • 2016-06-28
      • 2019-11-04
      • 2019-03-02
      • 2016-12-07
      • 2020-07-09
      • 2011-07-24
      相关资源
      最近更新 更多