`

用Map.Entry 和Map.entrySet() 遍历哈希表

阅读更多
HashMap 用到下面的格式 ,直接循环遍历整个hashMap  hashTable
返回的 set 中的每个元素都是一个 Map.Entry 类型。

private Hashtable<String, String> emails = new Hashtable<String, String>();

//      方法一: 用entrySet()
//  Iterator it = emails.entrySet().iterator();
//  while(it.hasNext()){
//   Map.Entry m=(Map.Entry)it.next();
//   logger.info("email-" + m.getKey() + ":" + m.getValue());
//  }
 
  // 方法二:直接再循环中
  for (Map.Entry<String, String> m : emails.entrySet()) {
  
   logger.info("email-" + m.getKey() + ":" + m.getValue());
  }
 
  // 方法三:用keySet()
  Iterator it = emails.keySet().iterator();
  while (it.hasNext()){
   String key;
   key=(String)it.next();
   logger.info("email-" + key + ":" + emails.get(key));
  }

// 方法五:还是用keySEt()        (04.29添加)

for(Object m: emails.keySet()){
   logger.info("email-" + m+ ":" + emails.get(m));
  }

另外 我们可以先把hashMap 转为集合Collection,再迭代输出,不过得到的对象

  Map   aa   =   new   HashMap();  
  aa.put("tmp1",   new   Object());     //追加     替换用同样的函数.  
  aa.remove("temp1");                       //删除  
  for   (Iterator   i   =   aa.values().iterator();   i.hasNext();   )   {  
          Object   temp   =   i.next();  
  }         //遍历  



来个完整的,包含TreeSet的元素内部排序的

public static void main(String[] args) {
  ArrayList<String> list = new ArrayList<String>();
  HashMap<Object,Object> hash = new HashMap<Object,Object>();
  TreeMap<Object,Object> treeMap = new TreeMap<Object,Object>();
  list.add("a");
  list.add("b");
  list.add("c");
 
  hash.put(3, 3);
  hash.put(4, 4);
  hash.put(5, 5);
  hash.put(6, 6);
  hash.put(1, 1);
  hash.put(2, 2);
 
  treeMap.put(1, 1);
  treeMap.put(2, 2);
  treeMap.put(3, 3);
  treeMap.put(4, 4);
  treeMap.put(5, 5);
  treeMap.put(6, 6);
 
  //list遍历
  for(String m: list){
   System.out.println(m);
  }
  // hashmap entrySet() 遍历
  for(Map.Entry<Object,Object> m: hash.entrySet()){
   System.out.println(m.getKey()+"---"+m.getValue());
  }
  //hashmap keySet() 遍历
  for(Object m: hash.keySet()){
   System.out.println(m+"---"+hash.get(m));
  }
  // treemap keySet()遍历
  for(Object m: treeMap.keySet()){
   System.out.println(m+"---"+treeMap.get(m));
  }
}


 
分享到:
评论

相关推荐

    java哈希遍历_哈希遍历_

    在Java编程中,哈希遍历(Hash Traversal)通常是指对哈希表或映射数据结构(如HashMap)中的键值对进行访问的过程。哈希表是一种高效的数据存储方式,它通过计算对象的哈希码来快速定位数据,使得查找、插入和删除...

    java遍历大容量map的正确方法.pdf

    3. **通过Map.entrySet遍历key和value(增强for循环)** 这种方式与第二种相似,也是遍历entrySet,但使用了Java 5引入的foreach循环,使得代码更加简洁。 ```java for (Map.Entry, String&gt; entry : map.entrySet...

    HashMap遍历

    在Java编程中,`HashMap`是一种常用的数据结构,它实现了`Map`接口,提供了基于哈希表的存储方式,允许我们快速地查找、插入和删除键值对。对于`HashMap`的遍历,是进行数据处理和分析时不可或缺的操作。本文将深入...

    java中Map的两种遍历方法

    其中,`HashMap`是`Map`接口的一个实现类,提供了基于哈希表的存储方式,具有较快的访问速度。在处理数据时,我们经常需要遍历`Map`中的元素。本文将详细探讨在Java中遍历`Map`的两种常用方法:通过`keySet()`方法和...

    HashTable排序.txt

    这部分代码演示了如何使用`getSortedHashtableByKey`方法获取排序后的`Map.Entry`数组,并遍历打印出键和对应的值。 ### 按值排序HashTable 代码还提供了一个按值排序`HashTable`的方法: ```java public static ...

    JavaMap.rar_arraylist map_collection_java map_javamap_地图 java

    例如,HashMap是基于哈希表的数据结构,提供了快速的插入、删除和查找操作,但其元素顺序是不确定的;而TreeMap则基于红黑树,可以保持插入顺序或自然排序,适用于需要有序性的场景;LinkedHashMap则保留了插入顺序...

    JAVA_MAP_+_LIST_SET和MAP的区别+_Map的三种遍历方法

    - **实现类**:包括 `HashSet`(基于哈希表)、`LinkedHashSet`(保持插入顺序)和 `TreeSet`(排序)。 #### 四、Map 的遍历方法 **1. 使用 keySet 遍历** ```java for (Object key : map.keySet()) { Object ...

    Map实现类1

    - 数据结构:HashMap基于哈希表实现,内部使用数组加链表或者红黑树的结构。每个元素是一个内部类Node,实现了Map.Entry接口,包含键值对。 - 构造函数:提供了无参构造、指定初始容量和指定初始容量与负载因子的...

    Java集合框架Map接口.pdf

    - `HashMap`:基于哈希表实现,提供快速的查找和插入操作。它是非同步的,适合在单线程环境下使用。 - `TreeMap`:基于红黑树实现,保证了键的有序性,支持按照自然顺序或自定义比较器排序。插入和查找的时间复杂度...

    基于HashMap遍历和使用方法(详解)

    3. 通过Map.entrySet遍历key和value 这是一种使用增强for循环遍历键值对的方法。 ```java for (Map.Entry, String&gt; entry : map.entrySet()) { System.out.println("key= " + entry.getKey() + " and value= " + ...

    java中map集合的用法.pdf

    HashMap是无序的,基于哈希表实现;TreeMap是有序的,基于红黑树实现;LinkedHashMap保持插入顺序或者访问顺序。 7. **Map视图和迭代** - `entrySet()`:返回Map中所有键值对的Set视图,用于遍历所有键值对。 - `...

    Java基础知识-day04 【Map】.pdf

    * public Set&lt;Map.Entry,V&gt;&gt; entrySet() : 获取到Map集合中所有的键值对对象的集合(Set集合)。 Map集合遍历键找值方式 键找值方式:即通过元素中的键,获取键所对应的值。分析步骤: 1. 获取Map中所有的键,由于键...

    java中map集合的用法.doc

    - HashMap:非同步,允许null键和值,基于哈希表实现,提供了快速的查找。 - TreeMap:基于红黑树实现,按照键的自然顺序或自定义Comparator排序。 - LinkedHashMap:保持插入顺序或按照访问顺序排序的HashMap...

    java中map的使用实例

    本篇文章将深入讲解Map的使用实例,包括插入、读取和遍历操作,以及HashMap、LinkedHashMap和TreeMap这三种常见的Map实现类之间的区别。 首先,让我们看看如何创建和插入键值对。在Java中,我们通常通过调用`put()`...

    map存取数据.do

    `HashMap`提供了快速的存取速度,因为它是基于哈希表实现的。声明一个`HashMap`实例的代码如下: ```java Map, String&gt; map = new HashMap(); ``` 这里,`, String&gt;`是泛型,用来指定键和值的数据类型,即键为`...

    Java_Collection_List-Set-Map.zip_list set map

    HashMap是最常用的Map实现,与HashSet类似,它使用哈希表存储键值对,提供快速查找。TreeMap则基于红黑树,保证了插入、删除和查找的性能为O(logn),并且默认按键的自然顺序排序,也可以自定义比较器。 4. **排序**...

    java map实例,排序

    例如,可以使用`map.entrySet().stream().sorted(Map.Entry.comparingByKey()).collect(Collectors.toList())`来根据键进行排序,或者使用`map.entrySet().stream().sorted(Map.Entry.comparingByValue()).collect...

    mapDemo(1).zip

    HashMap提供了快速的插入、删除和查找操作,基于哈希表实现;TreeMap则按照键的自然顺序或比较器排序,适合需要有序性的场景;而LinkedHashMap则保持了插入顺序或访问顺序,适用于需要迭代顺序与插入顺序一致的情况...

Global site tag (gtag.js) - Google Analytics