您的位置:首页 > 其它

HashMap散列映射表

2016-04-29 11:27 281 查看
当要储存成对元素时,就要用到可以存放键值对(Key , Value)的Map了

1.Map 中只可以存放键值对(Key , Value),其中Key是不可以重复的,Key和Value是一一对应。

2.HashMap是Map 接口的实现类,即是用hash的算法实现的Map.HashMap 是非线程安全的容器,轻量级,允许空的键值对。Key 是无序的存放且不可以重复的,他也是通过Hash码值来保证Key不重复的,如果要加入的键值对和HashMap中键值对的Key是相同的,就会将这个集合中的Key所对应的value值覆盖。在使用自定义类型作为Key时,要覆盖hashCode和equals方法,处理方法与HashSet相同

3.HashMap 底层也是数组,HashSet底层其实就是HashMap,只不过是只用Key值没有Value的HashMap.

4.改变操作:添加-删除键值对:put(key ,value) 方法在此映射中关联指定值和指定键

remove(key) 方法在此映射中移除指定键的映射关系

clear() 方法在此映射中移除所有映射关系

5.查询操作:get(key) 方法返回指定键所映射的值,如果此键不包含任何映射关系,则返回null

size()方法返回此映射的关系数

6.可以把键或者值的组作为集合来处理,KeySet()方法返回此映射中所包含的键的Set视图;values()方法返回此映射所包含的值的Collection视图,在遍历Map时,用使用其KeySet()方法获得Key的一个set集合,可以通过get()方法获得Key所对应的Value.

7.在Map中如果经常删除,插入,定位元素,最好使用HashMap,如果按顺序遍历最好用TreeMap.---有序键的遍历

package ch7;

import java.util.*;

public class TestHashMap
{
public static void main(String args[])
{
HashMap <String ,String >map = new HashMap<String ,String>();//构造一个默认初始容量16和默认加载因子0.75的空HashMap
//向map中添加键值对,put(K key,V value),在此映射中关联指定值和指定键
map.put("zhangsan","Java");
map.put("lisi","C++");
map.put("wangwu","C#");
map.put("yaoming","C++");
Set<String> set = map.keySet();//返回此映射中所包含的键的Set视图
Iterator <String> it = set.iterator();
Collection <String> set1 = map.values();//返回此映射所包含的值的Collection视图
Iterator <String> it1 = set1.iterator();
while(it1.hasNext())
{
String item1 = it1.next();
String keys = map.get(item1);
System.out.println(item1+"考试"+keys+"通过了");
}
while(it.hasNext())
{
String key = it.next();
String item = map.get(key);//返回指定键所映射的值;如果该键不包含任何映射关系,返回null
System.out.println(key+"同学通过了"+item+"考试");
}
String key1 = "yaoming";
if(map.containsKey(key1))
{
System.out.println("恭喜"+key1+"同学通过了"+map.get(key1));
}
else
{
System.out.println("很可惜"+key1+"没有通过考试!");
}
String value = "C++";
if(map.containsValue(value))
{
System.out.println(value + "考试还是太简单了,竟然有人通过了考试");
}
else
{
System.out.println("竟没有人通过此考试!!!!");
}
String key2 = "zhangsan";
map.remove(key2);
System.out.println(key2+"作弊,取消考试成绩!!!");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: