复制代码
代码如下:
import java.util.HashMap;
import
java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
public class HashMaps {
public static void
main(String[] args) {
MapString, String map = new HashMapString,
String();
map.put("a", "aaa");
map.put("b", "bbb");
map.put("c",
"ccc");
map.put("d", "ddd");
IteratorString iterator =
map.keySet().iterator();
while (iterator.hasNext()) {
Object key =
iterator.next();
System.out.println("map.get(key) is :" + map.get(key));
}
// 定义HashTable,用来测试
HashtableString, String tab = new
HashtableString, String();
tab.put("a", "aaa");
tab.put("b",
"bbb");
tab.put("c", "ccc");
tab.put("d", "ddd");
IteratorString iterator_1 = tab.keySet().iterator();
while
(iterator_1.hasNext()) {
Object key = iterator_1.next();
System.out.println("tab.get(key) is :" + tab.get(key));
}
TreeMapString, String tmp = new TreeMapString, String();
tmp.put("a", "aaa");
tmp.put("b", "bbb");
tmp.put("c", "ccc");
tmp.put("d", "cdc");
IteratorString iterator_2 =
tmp.keySet().iterator();
【二叉索引树java代码 二叉搜索树代码】while (iterator_2.hasNext()) {
Object key =
iterator_2.next();
System.out.println("tmp.get(key) is :" + tmp.get(key));
}
}
}
运行结果如下:
map.get(key) is :ddd
map.get(key) is :bbb
map.get(key) is :ccc
map.get(key) is :aaa
tab.get(key) is :bbb
tab.get(key) is :aaa
tab.get(key) is :ddd
tab.get(key) is :ccc
tmp.get(key) is :aaa
tmp.get(key) is :bbb
tmp.get(key) is :ccc
tmp.get(key) is :cdc
HashMap的结果是没有排序的,而TreeMap输出的结果是排好序的 。
下面就要进入本文的主题了 。先举个例子说明一下怎样使用HashMap:
复制代码
代码如下:
import java.util.*;
public class Exp1 {
public static void main(String[] args){
HashMap h1=new HashMap();
Random r1=new Random();
for (int i=0;i1000;i++){
Integer t=new
Integer(r1.nextInt(20));
if (h1.containsKey(t))
((Ctime)h1.get(t)).count++;
else
h1.put(t, new Ctime());
}
System.out.println(h1);
}
}
class Ctime{
int count=1;
public String toString(){
return Integer.toString(count);
}
}
在HashMap中通过get()来获取value,通过put()来插入value , ContainsKey()则用来检验对象是否已经存在 。可以看出,和ArrayList的操作相比,HashMap除了通过key索引其内容之外,别的方面差异并不大 。
前面介绍了,HashMap是基于HashCode的,在所有对象的超类Object中有一个HashCode()方法,但是它和equals方法一样,并不能适用于所有的情况 , 这样我们就需要重写自己的HashCode()方法 。下面就举这样一个例子:
复制代码
代码如下:
import java.util.*;
public class Exp2 {
public static void main(String[] args){
HashMap h2=new HashMap();
for (int i=0;i10;i++)
h2.put(new Element(i), new Figureout());
System.out.println("h2:");
System.out.println("Get the result for
Element:");
Element test=new Element(5);
if (h2.containsKey(test))
System.out.println((Figureout)h2.get(test));
else
System.out.println("Not found");
}
}
class Element{
int
number;
public Element(int n){
number=n;
}
}
class
Figureout{
Random r=new Random();
boolean
possible=r.nextDouble()0.5;
public String toString(){
推荐阅读
- html5具有那些优势,html5有哪些新特性和优点
- 电脑显卡怎么检查新旧,电脑显卡怎么看新旧
- c语言时间比较的函数 c语言时间比较的函数怎么写
- 表单提价必填的提示jquery,表单提交是什么意思
- 歪歪怎么直播视频号,歪歪如何直播游戏
- php分页获取不同数据库 php通用分页类
- linux筛选文件夹命令,筛选Linux进程的命令
- ppt怎么制作坐标,ppt怎么制作坐标图表
- 母婴科普直播视频素材,母婴直播主题吸引人话题