hashmap 和hashset不管是在面试还是在实际的代码编写中都还蛮经常见到了,但是直到现在我才对它进行了一个简单的应用,书上得来终觉浅,得知此事须躬行。先介绍hashmap,例子如下:
public class testHashMap {
public static void main(String[] args) {
testHash();
}
//public static String testHash(String remark){
public static void testHash(){
Map<String, String> replyMap=new HashMap<String, String>();
replyMap.put("can","well,you know I havn't seen yet.\n"+"So can you describe more?\n");
replyMap.put("speak","It is really a bad thing\n");
replyMap.put("jim","I don't know, may be a week or longer.");
Collection collValues=replyMap.values();
Iterator iter = collValues.iterator();
while(iter.hasNext()){
System.out.println("value "+iter.next());
}
Set skey=replyMap.keySet();
Iterator iterKey=skey.iterator();
while(iterKey.hasNext()){
System.out.println("Key "+iterKey.next());
}
}
运行的结果如下:
value I don't know, may be a week or longer.
value well,you know I havn't seen yet.
So can you describe more?
value It is really a bad thing
Key jim
Key can
Key speak
分析:
在用hashmap存储数据时,是一个key值对应一个value。
当要取出key时,要用到Set
Set skey=replyMap.keySet();
当要取出value时,要用到Collection
Collection collValues=replyMap.values();
不管是取出key 还是value,当要把它们全部取出来时,需要用到迭代器,然后用Iterator的 hasnext()方法将数据一个一个的读出来。
当hashmap中存入了相同key值的对象时,它采用覆盖的方式,最后一个相同key值的对象会存入map中
接着简单介绍下hashset
String[] wordArray=inputLine.split(" ");
HashSet<String> words=new HashSet<String>();
for(String word:wordArray){
words.add(word);
}
简单介绍下hashset,在hashset中只有key值,没有value值
然后往hashSet中添加数据是使用add方法
分享到:
相关推荐
HashMap和HashSet是Java集合框架中的两种重要数据结构,它们各自有着独特的特性和用途。下面将详细探讨这两者之间的差异。 HashSet是基于Set接口的实现,它遵循Set接口的基本原则,即不允许存储重复的元素。当你...
### HashMap与HashTable和HashSet的区别 #### 一、概述 在Java集合框架中,`HashMap`, `HashTable` 和 `HashSet` 是三个重要的数据结构,它们分别实现了`Map`接口和`Set`接口,提供了不同的功能来满足不同的编程...
在Java编程语言中,HashMap和HashSet是两种常用的集合类,它们都依赖于哈希存储机制来提供高效的数据存取性能。这两个类分别实现了Map接口和Set接口,虽然它们的用途不同,但它们底层的实现原理有很强的关联性。本文...
在Java编程语言中,ArrayList、LinkedList、HashMap和HashSet是四个非常重要的集合类,它们分别代表了不同类型的数据结构。这篇文章将深入探讨这些类的源码,以帮助我们更好地理解和运用它们。 首先,ArrayList是一...
本文将深入探讨一种名为cpp-sparsemap的实现,它是一个高效且轻量级的哈希映射(HashMap)和哈希集合(HashSet)的C++实现,主要由Tessil团队开发,并存储于Tessil-sparse-map-162cc7b版本的代码库中。 cpp-...
在Java编程中,HashMap、HashSet、TreeMap和TreeSet是四种常见的集合类,它们各自有特定的用途和内部实现机制。这些数据结构用于存储和管理数据,其中HashMap和HashSet是基于哈希表实现的,而TreeMap和TreeSet则是...
因此,HashSet的插入和查找速度与HashMap相当,但由于HashSet不需要存储值,所以它的空间效率略高于HashMap。 在使用HashMap时,需要注意的是,如果自定义的键类没有重写equals()和hashCode()方法,可能会导致哈希...
HashSet 和 HashMap 之间有很多相似之处,对于 HashSet 而言,系统采用 Hash 算法决定集合元素的存储位置,这样可以保证能快速存、取集合元素;对于 HashMap 而言,系统 key-value 当成一个整体进行处理,系统总是...
本文主要探讨了几个关键的集合接口和实现类的底层源码,包括List、HashMap、HashSet等,以及它们的基本操作。 首先,Collection接口是所有单值集合的父接口,提供了增加、删除、遍历元素的基本方法。例如,`add()`...
Java中的HashMap是一个非常重要的...总结起来,HashMap和HashSet是Java集合框架的重要组成部分,它们利用哈希技术提供了高效的数据存储和检索。了解并熟练掌握HashMap的工作原理对于优化Java应用程序的性能至关重要。
在存储效率方面,HashMap和HashSet都非常高效,因为它们都利用了哈希表的特性,使得查找、插入和删除的时间复杂度在理想情况下接近O(1)。然而,当哈希冲突频繁发生时,性能可能会下降,因为需要遍历链表或红黑树来...
在Java编程中,我们可以利用集合框架如HashMap和HashSet来实现这样的逻辑。下面我们将深入探讨如何使用HashMap实现单选功能以及如何用HashSet实现多选功能。 首先,我们来看HashMap如何实现单选功能。HashMap是Java...
在Java编程语言中,集合框架提供了多种数据结构来存储和操作数据,其中`TreeMap`、`TreeSet`、`HashSet`以及`HashMap`是最常用的数据结构之一。这些集合类各自有着独特的特性和应用场景,下面将对它们进行详细介绍。...
- **HashMap和HashSet的区别**:解释HashMap和HashSet之间的区别。 - **扩容机制**:HashMap是如何进行扩容的? - **长度限制**:解释为什么HashMap的长度通常是2的幂次方。 - **线程安全实现**:列举几种使HashMap...
在Java编程语言中,`equals()`和`hashCode()`方法是两个非常重要的概念,尤其是在处理对象比较和容器(如HashMap和HashSet)操作时。这两个方法在Java的类库中有着核心地位,尤其是对于类实例的比较和存储。接下来,...
Java集合专题总结:HashMap和HashTable源码学习和面试总结 本文总结了Java集合专题中的HashMap和HashTable,涵盖了它们的源码学习和面试总结。HashMap是一种基于哈希表的集合类,它的存储结构是一个数组,每个元素...
本文将深入探讨标题“集合代码需要时下载,留作参考.7z”中提到的几种核心集合类:HashMap、HashSet、LinkedList、ArrayList、Stack以及Vector,并通过它们的描述来阐述各自的特点和应用场景。 首先,我们来看...
- **Set接口**:同样继承自Collection接口,特点是元素无序且唯一,常见的实现类有HashSet和LinkedHashSet。 - **Map接口**:存储键值对的数据结构,键Key唯一,无序,常见的实现类有HashMap、TreeMap和...
6. HashMap和HashSet的区别:HashMap关注键值对,HashSet关注元素的唯一性,两者都基于哈希表实现,但HashSet的元素是HashMap的键。 7. 多线程问题:HashMap在多线程环境下不安全,可能导致死循环,应使用...