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 + " ");
}
}
}
分享到:
相关推荐
`keySet`方法是`HashMap`的一个重要组成部分,它返回一个包含所有键的`Set`视图。这个视图反映了`HashMap`中键的当前状态,任何对这个`Set`的修改都会直接反映到`HashMap`上。然而,这种特性可能会导致一些意外的...
Java源码解析HashMap的keySet()方法 Java中的HashMap提供了一个keySet()方法,该方法用于获取HashMap中的key的集合。下面我们将对HashMap的keySet()方法进行源码解析,以了解其内部实现机制。 首先,看一下keySet...
在`HashMap`中,我们可以通过`entrySet()`、`keySet()`或`values()`方法获取迭代器,分别针对键值对、键或值进行迭代。 1. **使用`entrySet()`迭代**: 这是最常见的迭代方式,因为它允许同时访问键和值。首先,...
这种方法首先通过`keySet()`方法获取`HashMap`的所有键的集合,然后通过迭代器遍历这些键,并使用`get()`方法获取每个键对应的值。这种方式相对效率较低,因为它需要两次访问`HashMap`:一次是获取键,另一次是通过...
Iterator iterator = hashmap.keySet().iterator(); while (iterator.hasNext()) { System.out.println(hashmap.get(iterator.next())); } ``` 这里,我们没有使用迭代器直接获取值,而是先获取键,再通过 `get()`...
《HashMap面试题详解》 HashMap作为Java集合框架中的重要成员,是面试中常见的知识点,尤其在数据结构与算法、并发编程以及JVM内存管理等领域,HashMap的深入理解至关重要。本篇将围绕HashMap的相关面试题,从基础...
Entry,V> next; ... } ``` 当向HashMap中添加元素时,系统会根据键的哈希值计算出其在数组中的位置,并将元素存放在该位置。如果该位置已有元素,则将新元素以链表形式连接到已有元素之后。 #### 二、哈希算法 ...
8. **迭代器**:HashMap提供了迭代器`keySet()`、`values()`和`entrySet()`,分别用于获取键集合、值集合和键值对集合的迭代器,方便遍历HashMap的所有元素。 9. ** equals() 和 hashCode()**:插入HashMap的键对象...
HashMap之resize()方法源码解读 HashMap的resize()方法是HashMap...在resize()方法中,我们可以看到HashMap的扩容机制是如何工作的,并了解到HashMap使用了power-of-two expansion机制和threshold字段来记录扩容阈值。
1. 使用迭代器遍历:使用 iterator() 方法取得 HashMap 的迭代器,然后使用 hasNext() 和 next() 方法遍历 HashMap 中的元素。 2. 使用 foreach 遍历:使用 foreach 语句遍历 HashMap 中的元素。 HashMap 的常用...
哈希映射(HashMap)是Java编程语言中广泛使用的数据结构之一,主要提供键值对的存储和查找功能。HashMap的实现基于哈希表的概念,它通过计算对象的哈希码来快速定位数据,从而实现了O(1)的平均时间复杂度。在深入...
### HashMap排序方法详解 在Java开发中,`HashMap`是一种非常常见的数据结构,它通过键值对的形式存储数据。然而,由于`HashMap`是基于哈希表实现的,所以它并不能保证元素的顺序。这就意味着如果需要按照某种特定...
6. **遍历HashMap**:有两种方式遍历HashMap,一是通过`entrySet()`获取键值对的迭代器,二是通过`keySet()`获取键的迭代器再获取对应的值。 ```java for (Map.Entry, String> entry : map.entrySet()) { System....
6. **迭代器遍历**:尽管遍历顺序不确定,但`HashMap`提供`keySet()`, `values()`和`entrySet()`方法来遍历键、值和键值对。 下面是一些关于`HashMap`的基本操作: - **插入键值对**:使用`put()`方法插入键值对,...
HashMap内部通过一个数组结构存储键值对,数组中的每个元素称为Entry,Entry是一个静态内部类,其中包含了key、value、next和hash四个属性。key和value分别存储键和值,next是存储相同哈希值的下一个Entry,hash是...
### HashMap与HashTable的区别详解 #### 引言 在Java编程中,`HashMap`与`HashTable`作为两种常用的数据结构,经常被用来存储键值对数据。尽管它们在功能上相似,但在实现细节、性能表现以及使用场景方面存在显著...
9. **遍历方式**:HashMap可以通过`keySet()`、`values()`和`entrySet()`获取三种不同类型的迭代器,分别用于遍历键、值和键值对。 10. **初始容量**:在创建HashMap时,可以通过构造函数指定初始容量。若不指定,...
Java HashMap 类详解 本资源详细介绍了 Java 中的 HashMap 类,包括其实现机制、Hash 存储机制、集合存储机制等方面的知识点。 1. HashMap 和 HashSet 的关系 HashMap 和 HashSet 是 Java Collection Framework ...