JAVA——Map和HashMap的基本用法以及自己实现HashMap

2021-04-01 03:28

阅读:650

标签:sys   main   boolean   tree   rgs   remove   link   null   list   

Map接口:

1、实现Map接口的类用来存储键(key)-值(value)对

2、Map接口的实现类有HashMap和TreeMap

3、Map类中存储的键-值对通过键来标识,所以键值不能重复

常用方法类:

Object put(Object key,Object value);
Object get(Object key);
Object remove(Object key);
boolean containKey(Object key);
boolean containValue(Object value);
int size();
boolean isEmpty();
void putAll(Map t);
void clear();
public class TestMap {

	public static void main(String[] args) {
		Map map=new HashMap();
		map.put("Lisa", new blackPink("Jennie"));
        map.put("Rosie", new blackPink("Jisoo"));
        //map.remove("Lisa");
        blackPink bPink=(blackPink) map.get("Lisa");//get方法返回的是object 要转型 这里是把地址给了bPink
        map.remove("Lisa");//只是移出容器
        System.out.println(bPink.name);
	}

}
class blackPink{
	String name;
	public blackPink(String name)
	{
		this.name=name;
	}
}

自己实现HashMap:

package collection;

import java.util.LinkedList;

/**
 * Map:存放键值对,根据键对象找值对象,键不能重复
 * 哈希码是通过对象地址进行计算得出来的
 * Map底层是数组+链表
 * @author Administrator
 *
 */
public class MyMap {
	LinkedList [] arr=new LinkedList[999];
	int size;

	public void put(Object key,Object value)
	{
		MyEntry entry=new MyEntry(key,value);
		int a=key.hashCode()%arr.length;
		//a:1000->1 b:10000->13
		if(arr[a]==null)
		{
			LinkedList list=new LinkedList();
			arr[a]=list;
			list.add(entry);
		}
		else {
			LinkedList list=arr[a];
			for(int i=0;i

  

JAVA——Map和HashMap的基本用法以及自己实现HashMap

标签:sys   main   boolean   tree   rgs   remove   link   null   list   

原文地址:https://www.cnblogs.com/zmt-blackpink-JL/p/13548816.html


评论


亲,登录后才可以留言!