【问题标题】:Compare Hashmap with List list = new Arraylist()比较 Hashmap 和 List list = new Arraylist()
【发布时间】:2012-03-06 04:20:20
【问题描述】:

需要帮助:我不熟悉 Hashmaps。如何将列表和数组与哈希映射进行比较? List & 数组包含整数。

地图:

 Map<Integer, String> profMap = new HashMap<Integer, String>() {};
        while(profs.next()){
            Integer key= profs.getInt("profid");
            String name= profs.getString("profname");
            profMap.put(key,name);
        }
/* profs comes from my sql statement and pulls values from those columns*/

数组:

String [] profArray = request.getParameterValues("professor");

列表:

List list= new ArrayList();

我迷失在文档和我看到的所有其他示例中。希望有人能帮帮我

【问题讨论】:

  • 您的地图有两个集合,键集和值集。您想将哪个与数组或集合进行比较?
  • 您的问题是什么?您是否需要知道ListMap 之间的区别是什么?基本上,List 就像一个数组,它只是在其中保存一组值。 Map 包含 key value 对,因此每个值都有一个与之关联的键。
  • profs 是什么?知道sscce.
  • 我需要来比较键,然后存储这些值.. 我真的只是不知道如何格式化 foreach
  • 我还是不知道你要干什么!请专注于此并编辑您的帖子。

标签: java arrays list hashmap


【解决方案1】:

根据您的评论,您希望比较键并存储与匹配的键关联的值。

你可以这样做。

foreach(Integer key in profMap.keyset()) {
    if(/* Check the key against your criteria */) {
        list.add(ProfMap.get(key));
    }
}

【讨论】:

    【解决方案2】:

    基本上,HashMap 是一个由唯一键索引的项目列表。使用 ArrayList 或普通数组,您可以按列表中的位置进行索引,例如 list[0] 或 list.get(0)。使用 HashMap,没有这样的排序,因此您无法通过索引引用项目。当您向 HashMap 添加项目时,您提供了一个可以是任何对象的键和可以是任何对象的值。当您想从地图中取回值时,您可以使用键值检索它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-15
      • 2014-07-22
      • 2017-05-08
      • 2021-05-31
      • 2018-10-31
      • 2011-12-11
      • 2014-01-03
      • 2013-08-22
      相关资源
      最近更新 更多