`
rotter
  • 浏览: 8716 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

About next() of HashMap keySet

阅读更多
Note:
If you found all of the a4 values are the same as a1, please change the init value of h4 such as:
  static HashMap<String, String> h4 = new HashMap<String, String>(1);

package test;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;

public class Testor {
  static Testor t = new Testor();
  class T1{
    String s;
    T1(String pS){
      s = pS;
    }
    @Override
    public int hashCode() {
      return (int)(Math.random()*1000);
    }
    @Override
    public String toString() {
      return s;
    }
  }
  class T2{
    String s;
    T2(String pS){
      s = pS;
    }
    @Override
    public int hashCode() {
      return s.hashCode();
    }
    @Override
    public String toString() {
      return s;
    }
  }
  static HashMap<String, String> h1 = new HashMap<String, String>(50);
  static {
    for (int i = 0; i < 20; i++) {
      h1.put(String.valueOf(i), String.valueOf(i));
    }
  }
  static HashMap<T1, String> h2 = new HashMap<T1, String>();
  static {
    Testor t = new Testor();
    for (int i = 0; i < 20; i++) {
      h2.put(t.new T1(String.valueOf(i)), String.valueOf(i));
    }
  }
  static HashMap<T2, String> h3 = new HashMap<T2, String>();
  static {
    for (int i = 0; i < 20; i++) {
      h3.put(t.new T2(String.valueOf(i)), String.valueOf(i));
    }
  }

  static HashMap<String, String> h4 = new HashMap<String, String>(1);
  static {
    for (int i = 0; i < 20; i++) {
      h4.put(String.valueOf(i), String.valueOf(i));
    }
  }
  
  public static void main(String[] args) {
    Iterator<Entry<String,String>> it = h1.entrySet().iterator();
    Iterator<Entry<T2,String>> it3 = h3.entrySet().iterator();
    Iterator<Entry<T1,String>> it2 = h2.entrySet().iterator();
    Iterator<Entry<String,String>> it4 = h4.entrySet().iterator();
    while (it.hasNext()) {
      String a1 = it.next().getKey();
      T1 a2 = it2.next().getKey();
      T2 a3 = it3.next().getKey();
      String a4 = it4.next().getKey();
      System.out.print(a1 + "|" + a3 + "|" + a2 + "|" + a4 + " ");
    }
  }
}

分享到:
评论

相关推荐

    java HashMap的keyset实例

    `keySet`方法是`HashMap`的一个重要组成部分,它返回一个包含所有键的`Set`视图。这个视图反映了`HashMap`中键的当前状态,任何对这个`Set`的修改都会直接反映到`HashMap`上。然而,这种特性可能会导致一些意外的...

    Java源码解析HashMap的keySet()方法

    Java源码解析HashMap的keySet()方法 Java中的HashMap提供了一个keySet()方法,该方法用于获取HashMap中的key的集合。下面我们将对HashMap的keySet()方法进行源码解析,以了解其内部实现机制。 首先,看一下keySet...

    hashMap利用iterator迭代器迭代元素方法

    在`HashMap`中,我们可以通过`entrySet()`、`keySet()`或`values()`方法获取迭代器,分别针对键值对、键或值进行迭代。 1. **使用`entrySet()`迭代**: 这是最常见的迭代方式,因为它允许同时访问键和值。首先,...

    如何得到hashmap的索引

    这种方法首先通过`keySet()`方法获取`HashMap`的所有键的集合,然后通过迭代器遍历这些键,并使用`get()`方法获取每个键对应的值。这种方式相对效率较低,因为它需要两次访问`HashMap`:一次是获取键,另一次是通过...

    hashmap 实例

    Iterator iterator = hashmap.keySet().iterator(); while (iterator.hasNext()) { System.out.println(hashmap.get(iterator.next())); } ``` 这里,我们没有使用迭代器直接获取值,而是先获取键,再通过 `get()`...

    hashmap面试题_hashmap_

    《HashMap面试题详解》 HashMap作为Java集合框架中的重要成员,是面试中常见的知识点,尤其在数据结构与算法、并发编程以及JVM内存管理等领域,HashMap的深入理解至关重要。本篇将围绕HashMap的相关面试题,从基础...

    HashMap介绍和使用

    Entry,V&gt; next; ... } ``` 当向HashMap中添加元素时,系统会根据键的哈希值计算出其在数组中的位置,并将元素存放在该位置。如果该位置已有元素,则将新元素以链表形式连接到已有元素之后。 #### 二、哈希算法 ...

    HashMap的数据结构

    8. **迭代器**:HashMap提供了迭代器`keySet()`、`values()`和`entrySet()`,分别用于获取键集合、值集合和键值对集合的迭代器,方便遍历HashMap的所有元素。 9. ** equals() 和 hashCode()**:插入HashMap的键对象...

    HashMap之resize()方法源码解读.docx

    HashMap之resize()方法源码解读 HashMap的resize()方法是HashMap...在resize()方法中,我们可以看到HashMap的扩容机制是如何工作的,并了解到HashMap使用了power-of-two expansion机制和threshold字段来记录扩容阈值。

    HashMap总结

    1. 使用迭代器遍历:使用 iterator() 方法取得 HashMap 的迭代器,然后使用 hasNext() 和 next() 方法遍历 HashMap 中的元素。 2. 使用 foreach 遍历:使用 foreach 语句遍历 HashMap 中的元素。 HashMap 的常用...

    hashmap实现原理

    哈希映射(HashMap)是Java编程语言中广泛使用的数据结构之一,主要提供键值对的存储和查找功能。HashMap的实现基于哈希表的概念,它通过计算对象的哈希码来快速定位数据,从而实现了O(1)的平均时间复杂度。在深入...

    HashMap排序

    ### HashMap排序方法详解 在Java开发中,`HashMap`是一种非常常见的数据结构,它通过键值对的形式存储数据。然而,由于`HashMap`是基于哈希表实现的,所以它并不能保证元素的顺序。这就意味着如果需要按照某种特定...

    hashmap使用实例

    6. **遍历HashMap**:有两种方式遍历HashMap,一是通过`entrySet()`获取键值对的迭代器,二是通过`keySet()`获取键的迭代器再获取对应的值。 ```java for (Map.Entry, String&gt; entry : map.entrySet()) { System....

    Java-HashMap.rar_hashmap_java hashmap

    6. **迭代器遍历**:尽管遍历顺序不确定,但`HashMap`提供`keySet()`, `values()`和`entrySet()`方法来遍历键、值和键值对。 下面是一些关于`HashMap`的基本操作: - **插入键值对**:使用`put()`方法插入键值对,...

    Java中HashMap的工作机制

    HashMap内部通过一个数组结构存储键值对,数组中的每个元素称为Entry,Entry是一个静态内部类,其中包含了key、value、next和hash四个属性。key和value分别存储键和值,next是存储相同哈希值的下一个Entry,hash是...

    HashMap和HashTable的区别和不同

    ### HashMap与HashTable的区别详解 #### 引言 在Java编程中,`HashMap`与`HashTable`作为两种常用的数据结构,经常被用来存储键值对数据。尽管它们在功能上相似,但在实现细节、性能表现以及使用场景方面存在显著...

    hashmap.zip

    9. **遍历方式**:HashMap可以通过`keySet()`、`values()`和`entrySet()`获取三种不同类型的迭代器,分别用于遍历键、值和键值对。 10. **初始容量**:在创建HashMap时,可以通过构造函数指定初始容量。若不指定,...

    Java HashMap类详解

    Java HashMap 类详解 本资源详细介绍了 Java 中的 HashMap 类,包括其实现机制、Hash 存储机制、集合存储机制等方面的知识点。 1. HashMap 和 HashSet 的关系 HashMap 和 HashSet 是 Java Collection Framework ...

Global site tag (gtag.js) - Google Analytics