Java的Map接口可以用来存储数据表的数据(类似姓名——成绩表)、可以用来存储登录的账号加密码(输入正确账号后检验密码是否正确)、可以用来……
目录
Map的最明显的特性
Map的介绍
Map的特性
Map的用法
输出Map中的数据
方法1:法一
方法二:法二
Map的最明显的特性
Map类是一个用来解决保存映射关系的问题
假如有一个成绩单(姓名,成绩),用一个数组存储姓名,一个数组存储成绩,a[0]存姓名、b[0]存成绩。看似没有问题,但是这两者没有保存映射关系。数组无法保存具有映射关系的数据,如成绩表为语文——79,数学——80,这种数据看上去像两个数组,但这两个数组的元素之间有一定的关联关系。
HashMap就很好的解决了这个问题
Map的介绍
Map 是一种键-值对(key-value)集合
Map 集合里保存着两组值,一组值用于保存 Map 里的 key, 另外一组值用于保存 Map 里的 value, key 和 value 都可以是任何引用类型的数据 。
Map的特性
Map 的 key 不允许重复,value 可以重复,即同一个 Map 对象的任何两个 key 通过 equals 方法比较总是返回 false。
Map 中的 key 和 value 之间存在单向一对一关系,即通过指 定的 key,总能找到唯一的、确定的 value。
Map的用法
从 Map 中取出数 据时,只要给出指定的 key,就可以取出对应的 value。
Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。
其中,HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序。
public class HashMapTest
{
public static void main(String[] args)
{
HashMap hashMap =new HashMap();
//hashMap表一对键值<K,V>
hashMap.put("name","张三");
hashMap.put("age","30岁");
hashMap.put("id","12345");
hashMap.put("number","12345678");
hashMap.put("birth","12345");
System.out.println("hashMap中的键值对:"+hashMap);
hashMap.remove("id");//删除id这个键值
System.out.println("hashMap修改后的键值对:"+hashMap);
//根据K值来返回对应的V值,因为K值是唯一的
System.out.println("name所对应的V值:"+hashMap.get("name"));
System.out.println("输出hashMap中的K值:"+hashMap.keySet());//输出所有的K值
System.out.println("输出hashMap中的V值:"+hashMap.values());//输出所有的V值
Set set = hashMap.entrySet();//将HashMap以Set的形式输出
System.out.println("输出内容:"+set);//直接输出内容
Iterator iterator = set.iterator();
System.out.print("一对一对键值的输出:");
while (iterator.hasNext())
{
System.out.print(iterator.next()+" ");
}
}
}
输出Map中的数据
方法1:法一
Iterator iterator1 = hashMap.keySet().iterator();
while (iterator1.hasNext())
{
Object key = iterator1.next();
Object val = hashMap.get(key);
System.out.print(key+"=="+val+"\t");
}
方法二:法二
Set set = hashMap.entrySet();//将HashMap以Set的形式输出
Iterator iterator = set.iterator();
System.out.print("一对一对键值的输出:");
while (iterator.hasNext())
{
System.out.print(iterator.next()+" ");
}