Java学习之Map与HashMap

来源:互联网 发布:刷客网络兼职可信吗 编辑:程序博客网 时间:2024/06/08 12:38

一、概念

集合中的数据,存在一一对应的映射关系

Map:将键映射到值得对象,一个映射不能包含重复的键,每个键最多只能映射到一个值

二、方法

A:删除功能
 void clear():移除集合中的所有键值对元素

V remove(Object key):根据键移除键值对元素,并返回值

B:判断功能

boolean containsKey(Object key):判断集合中是否包含指定的键

boolean containsValue(Object value):判断集合中是否包含指定的值

boolean isEmpty():判断集合是否为空

C:获取功能

Set<Map.Entry<K,V>> entrySet():获取键值对对象的集合,遍历键值对对象,

 利用getKey(),getValue()取出键和值(理解即可)

V get(Object key):根据键获取值

Set<K> keySet():获取所有的键

Collection<V> values():获取所有的值

D:添加功能

V put(K key,V value):集合添加键值对

E:长度功能

int size():键值对对数。

package com.edu.map;import java.util.HashMap;import java.util.Set;public class MapDemo {public static void main(String[] args) {HashMap<Integer, String> hMap = new HashMap<Integer, String>();hMap.put(1, "小明");hMap.put(2, "小红");hMap.put(3, "小话");hMap.put(4, "小白");//void clear():移除集合中的所有键值对元素//hMap.clear();//V remove(Object key):根据键移除键值对元素,并返回值String remove = hMap.remove(2);System.out.println("移除的值为"+remove);//boolean containsKey(Object key):判断集合中是否包含指定的键boolean b = hMap.containsKey(2);System.out.println(b);//boolean containsValue(Object value):判断集合中是否包含指定的值boolean c = hMap.containsValue("sd");System.out.println(c);//boolean isEmpty():判断集合是否为空boolean empty = hMap.isEmpty();System.out.println(empty);System.out.println("--------------------");//V get(Object key):根据键获取值//Set<K> keySet():获取所有的键Set<Integer> set = hMap.keySet();for (Integer key : set) {System.out.println(key+"  "+hMap.get(key));}}}

三、HashMap

元素顺序:元素顺序不可预测

底层算法:哈希算法

对键没有要求(仅仅相对于TreeMap来说)

 需要重写javabean里面的hashCode()和equals()方法

重写了Student里面的hashCode()和equals()方法

package com.edu.map;import java.util.HashMap;import java.util.Set;/** * 存入(String,Student)键:String(国籍)  值:Student * */public class HashMapDemo {public static void main(String[] args) {HashMap<String, Student> sMap = new HashMap<String,Student>();Student s1 = new Student("郭德纲", 50);Student s2 = new Student("于谦", 50);Student s3 = new Student("岳云鹏", 50);Student s4 = new Student("孙越", 50);sMap.put("中国", s1);sMap.put("美国", s2);sMap.put("英国", s3);sMap.put("法国", s4);Set<String> set = sMap.keySet();for (String key : set) {System.out.println(key+"  "+sMap.get(key).getName()+"  "+sMap.get(key).getAge());}}}





0 0
原创粉丝点击