【问题标题】:How to find key from HashMap如何从 HashMap 中找到密钥
【发布时间】:2013-07-19 05:36:24
【问题描述】:
 JSONObject json = new JSONObject(result);
                       Iterator<?> keys = json.keys();
                        while( keys.hasNext() ){
                             key = (String)keys.next();
                           item = json.getString(key);
                           mList.add(item);
                           ItemsHashMap.hmstock.put(key, item);

请任何人告诉我如何从这个代码示例中找到密钥,例如{17=Common English,16=Basic english}。我想从中获得唯一的密钥手段 (17) 请帮助我...因为这些都是列表视图中显示 18 个项目

【问题讨论】:

  • HashMap.keySet()。阅读示例tutorialspoint.com/java/util/hashmap_keyset.htm
  • @Pankaj Kumar-我只想得到我从 ListView 中选择的一个键。
  • @PankajKumar 您无法获取值的键。键应该是值和值键。或者你想要一个双向地图。
  • @m0skit0 我没有问这个问题。我没听懂你在说什么
  • @PankajKumar 你的意思是你有“通用英语”,你想找回 17,对吗?

标签: android hashmap


【解决方案1】:

试一试

public void onItemClick(AdapterView<?> parent, View view, int
         position,
         long id) {

         String name = mList.get(position);
         Iterator itr = ItemsHashMap.hmstock.keySet().iterator();
         while (itr.hasNext()) {
                String key2 = (String) itr.next();
                if (ItemsHashMap.hmstock.get(key2).toString().equals(name) {
                    keyId = Integer.parseInt(key2);// parsing to int because i am assuming KeyId variable is of int 
                    break;
                }
            }
         Toast.makeText(getBaseContext(), "" + keyId,
         Toast.LENGTH_SHORT).show();
         // keyId Shows the null Value
         }

【讨论】:

  • 我正在把我的所有代码不包括适配器类请告诉我我如何获得价值我把我的 api 也 twominenglish.com/api/getcategories?page=1 帮我它对我来说很紧急
  • 你想从哪里获得价值?我的意思是来自 hashmap 等?
  • @farha 查看我的更新答案,并使用您提供给我的代码更新您的问题!
  • 它通过此代码工作错误它在列表视图中获得位置,但我想要根据 api 示例 {17=common English} 的位置,但在列表视图中它显示在第 3 位,它给出了 3 而不是 17请帮助我...
【解决方案2】:

编辑

1)改变

ItemsHashMap.hmstock.put(key, item);

ItemsHashMap.hmstock.put(item, key);

2)所以现在你实际上是在显示项目,在 hashmap 中它将被存储为“key”。所以每当你点击 listview 时,你都会将选定的文本作为 item..so item 成为你地图的关键。

key=娱乐英语; 值=1;

3)现在传递你的物品以获得它的价值;

if(hashMap.containsKey(item))//here item is key;item=Entertainment English
  {

         String value=hashMap.get(item);
//so it will return value of this key
//value="1";
   }

【讨论】:

  • -我无法理解你的代码......请告诉我更多关于这个......这个领域的新内容。
  • 您的列表视图中有什么?
  • 我的意思是,当您在列表视图中选择时,您会得到什么键或值?
  • 当我点击列表视图时,我得到的值意味着“通用英语”没有得到关键的意思是 17 是 prblm..
  • 当你显示 18 个项目并且你的 hashmap 包含 18 个字段..你上面也说过你的键是 "0","1"...to"17" 格式。对吗?跨度>
猜你喜欢
  • 2021-09-12
  • 1970-01-01
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
  • 2017-10-08
  • 1970-01-01
  • 2022-12-07
  • 2017-11-20
相关资源
最近更新 更多