Java学习之Map与HashMap

这篇博客介绍了Java中的Map接口及其实现类HashMap的基本概念和常用操作,包括添加、删除、判断、获取和获取长度的方法。HashMap的特点是元素顺序不可预测,且对键不设特定要求,但需重写对象的hashCode()和equals()方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概念

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

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());
		}
	}
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值