精华内容
下载资源
问答
  • 哈希表遍历

    千次阅读 2016-03-20 14:49:11
    Hashtable hash = new Hashtable(); hash.Add("pg", "apple"); hash.Add("xj", "banana"); hash.Add("jz", "oriage"); hash.Add("lz", "pear"); hash.Add("t
               Hashtable hash = new Hashtable();
               hash.Add("pg", "apple");
               hash.Add("xj", "banana");
               hash.Add("jz", "oriage");
               hash.Add("lz", "pear");
               hash.Add("tz", "peach");
    
               //recusively show key and value
               foreach (DictionaryEntry item in hash)
               {
                   Console.WriteLine( item.Key + "  " + item.Value);
               }
    
                //recusively key
                foreach (var key in hash.Keys)
                {
                    Console.WriteLine(key);
                }
    
                //recusive value
                foreach (var value in hash.Values)
                {
                    Console.WriteLine(value);
                }
    展开全文
  • ![图片说明](https://img-ask.csdn.net/upload/201412/30/1419943860_485761.jpg) 把1 2 3 4 5 遍历出来 然后调用 gethar 方法都得到相应的vaule 就可以啦
  • 主题外谈在进入主题之前,先讲一点与哈希表相关的一些东西:1.Hash算法, 通常还可用作快速查找。2.哈希函数,是支撑哈希表的一类「函数」。3.哈希表(Hash Table),是一种**「数据结构」**。ps:hash家族中 HashMap和...

    一.主题外谈

    在进入主题之前,先讲一点与哈希表相关的一些东西:

    1.Hash算法, 通常还可用作快速查找。

    2.哈希函数,是支撑哈希表的一类「函数」。

    3.哈希表(Hash Table),是一种**「数据结构」**。

    ps:hash家族中 HashMap和Hash table 是有异同的,可参考:https://blog..net/ahachengyu/article/details/79331317

    HashMap遍历操作实现

    主要有以下三个方法:

    1.根据key遍历

    2.根据value遍历

    3.根据key和value组合(entry)遍历

    代码实现:

    //需要用到的自定义student类

    public class Student {

    String name;

    int score;

    public String toString() {

    return "Student [name=" + name + ", score=" + score + "]";

    }

    }‘

    import java.util.Map.Entry;

    import java.util.Collection;

    import java.util.HashMap;

    import java.util.Iterator;

    import java.util.Set;

    public class MyMap {

    public static void main(String[] args) {

    HashMap map = new HashMap();

    //存取

    for(int i=0; i<10; i++) {

    Student stu = new Student();

    stu.name = "name"+i;

    stu.score = 20+i;

    map.put(stu.name, stu);

    }

    Student stu = map.get("name3");

    if(stu != null) {

    System.out.println(stu.toString());

    }

    System.out.println(" ");

    System.out.println(" ");

    //遍历操作

    //方法一:根据key遍历

    Set sets = map.keySet();

    Iterator iterator = sets.iterator();

    while(iterator.hasNext()) {

    String key = iterator.next();

    Student stu2 = map.get(key);

    System.out.println(stu2);

    }

    System.out.println(" ");System.out.println(" ");

    //迭代循环

    for(String str : sets) {

    Student stu2 = map.get(str);

    System.out.println(stu2);

    }

    System.out.println(" ");System.out.println(" ");

    //方法二:values遍历

    Collection coll = map.values();

    //coll.iterator()

    for(Student stu3 : coll) {

    System.out.println(stu3);

    }

    System.out.println(" ");System.out.println(" ");

    //方法三:Entry遍历

    Set> sets2 = map.entrySet();

    for(Entry entry : sets2) {

    String key = entry.getKey();

    Student stu4 = entry.getValue();

    System.out.println(stu4);

    }

    Set> sets3 = map.entrySet();

    }

    }

    运行结果:

    eea26adddbd46601a17eb9d31096fff4.png

    展开全文
  • 遍历哈希表

    2012-09-04 16:30:00
    遍历哈希表 遍历哈希表需要用到DictionaryEntry Object,代码如下: for(DictionaryEntry de in ht) fileht为一个Hashtable实例 { Console.WriteLine(de.Key); de.Key对应于keyvalue键值对key Console....

    遍历哈希表

    遍历哈希表需要用到DictionaryEntry Object,代码如下:

    for(DictionaryEntry de in ht) fileht为一个Hashtable实例

    { Console.WriteLine(de.Key);

    de.Key对应于keyvalue键值对key   

    Console.WriteLine(de.Value);

    de.Key对应于keyvalue键值对value }

    转载于:https://www.cnblogs.com/lucoo/archive/2012/09/04/2670596.html

    展开全文
  • 我们都知道哈希表是可以遍历的。 但是很遗憾,unordered_map内部是使用哈希表进行存储的, 他是hash(法语,被打乱的)的。也就是说,是没有顺序的。 先插入的键值对很有可能不会最先访问。 所以不要寄希望...

    问题描述:

    给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

    案例:

    s = "leetcode"
    返回 0.
    
    s = "loveleetcode",
    返回 2.
    

     

    注意事项:您可以假定该字符串只包含小写字母。

    基本思路:

    建立一个字符到该字符出现个数统计的映射,

    然后找出第一个个数统计为1的元素。

    有一点要尤为注意:

    我们都知道哈希表是可以遍历的。

    但是很遗憾,unordered_map内部是使用哈希表进行存储的,他是hash(法语,被打乱的)的。也就是说,是没有顺序的。

    先插入的键值对很有可能不会最先访问。

    所以不要寄希望于遍历hashmap得到第一个value为1的元素。

    这里有两个解决方法:

    1.  在统计出现个数的时候顺便记录索引,用pair<int, int>的类型来作为value
    2.  最后再从头扫描字符串,一碰到value为1的,立即返回。

    AC代码:

    class Solution {
    public:
        int firstUniqChar(string s) {
          map<char, pair<int, int>> hashmap;    // 第一个int统计次数,第二个int统计索引
          for (int i = 0; i < s.size(); ++i) {
            ++hashmap[s[i]].first;
            hashmap[s[i]].second = i;
          }
          // 特别注意由于是哈希实现的,这里遍历hashmap不能保证任何顺序
          int min = INT_MAX;
          for (auto it = hashmap.begin(); it != hashmap.end(); ++it) {
            if (it->second.first == 1) {
              if (it->second.second < min) min = it->second.second;
            }
          }
          return (min == INT_MAX)? -1 : min;
        }
    };
    class Solution {
    public:
        int firstUniqChar(string s) {
            int len = s.length();
            if(len < 1){
                return -1;
            }
            vector<int> answer(26,0);
            for(int i = 0;i < len;i++){
                answer[s[i] - 'a']++;
            }
            for(int i = 0;i < len;i++){
                if(answer[s[i] - 'a'] == 1){
                    return i;
                }
            }
            return -1;
        }
    };

     

    展开全文
  • 在遍历哈希表的时候,我一般采取的是iterator的方法来遍历,这样遍历很不方便,在leetcode 697题中,了解了一种新的哈希表遍历方法,这种基于auto关键字的遍历应该是在C++ 11中支持的,非常方便。 题干如下: 题目...
  • 在进入主题之前,先讲一点与哈希表相关的一些东西: 1.Hash算法, 通常还可用作快速查找。 2.哈希函数,是支撑哈希表的一类「函数」。 3.哈希表(Hash Table),是一种**「数据结构」**。 ps:hash家族中 HashMap和Hash...
  • 哈希表的增加、遍历、查找 package com.wmq.atguigu.hashtable; import java.util.Scanner; /** * 哈希表 */ public class HashTableDemo { public static void main(String[] args) { HashTab hashTab = new ...
  • Map.Entry使用解读及其在哈希表遍历中的应用  在北京百分点科技笔试的时候,有一道算法设计题目:写一个算法,遍历哈希表,并输出相应的key,value值。当时答的不是很好,事后上网查了下资料,整理成下篇文章...
  • 主要介绍了C#使用foreach遍历哈希表(hashtable)的方法,是C#中foreach语句遍历散列表的典型应用,非常具有实用价值,需要的朋友可以参考下
  • C#遍历哈希表

    2016-01-12 11:50:16
     //遍历key  foreach (Object v in obj.Keys)  {  Console.WriteLine(v);  }  Console.WriteLine("-----------------------------------------");  //遍历值  foreach (Object v in obj.Values)  {  ...
  • java 遍历哈希表 stl

    千次阅读 2010-09-18 15:30:00
    比如哈希表为map,类型为从Integer到 String的映射。 遍历代码如下: HashMap Map; Iterator iter = Map.entrySet().iterator();//先获取这个map的set序列,再或者这个序列的迭代器  while(iter.hasNext()){
  • java中哈希表的使用第二例—即将罗马数字转换为整数 代码: class Solution { public int romanToInt(String s) { HashMap<Character,Integer> map = new HashMap<Character,Integer>(); map.put(‘I’,...
  • 哈希表、图、树的遍历
  • 两次遍历 public int[] twoSum(int[] nums, int target) { Map<Integer,Integer> numsMap = new HashMap<Integer,Integer>(); int length = nums.length; for(int i=0;i<length;i++){ numsMap....
  • (2) 首先将 A 中的所有元素都放到哈希表中(因为哈希表查找起来更快),然后遍历数组 B,根据公式求出对应 x 的值,若该值在哈希表中存在则直接返回 {x, y} 方法一:使用哈希表来存储数组 A 中的元素,遍历数组 B ...
  • java 哈希表的几种遍历

    千次阅读 2014-07-07 20:28:32
    //得到遍历 key 的选代器 Iterator it = set.iterator(); while(it.hasNext()){ Integer key=(Integer) it.next(); System.out.println("key:"+key+",value:"+map.get(key)); } /****************...
  • 哈希表的增、删、查、遍历

    千次阅读 2019-10-07 02:47:01
    import java.io.Serializable; /** * @Auther: Administrator ... * @Description: 哈希表的增、删、查、遍历 * * 哈希表数据结构 就是 数组数据结构 与 链表数据结构 的组合而构成的,即 * 哈希表 = 数组 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,804
精华内容 1,521
关键字:

哈希表遍历