HashMap中方法总结

本文总结了HashMap的主要方法,包括put、get、size、isEmpty、remove、clear、containsKey、containsValue、values、keySet及entrySet等。HashMap是无序的,不保证遍历顺序。可以使用keySet、values、entrySet等方式进行遍历。

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

昨天讲过Collection集合中ArrayList和HashSet方法总结。今天讲HashMap中方法总结

首先了解一下HashMap结构。

前面我们提到集合有两个分支,Collection集合和Map集合,Collection集合前面以分析,不再赘述,接下来分析Map集合结构。

Map集合有三个分支(两个类:Hashtable,AbstractMap一个接口SortedMap),接口先不说,先说Map集合下的两个类:Hashtable,AbstractMap。

Hashtable下有一个Properties子类,AbstractMap下有HashMap和TreeMap,HashMap下有LinkedHashMap.

接下来总结HashMap常用方法

1.put(key,value)   向HashMap中添加元素   key - value,key不允许重复(否则覆盖已有的key对相应的值,后续会有证明),如

package blog;

import java.util.HashMap;

public class Map {

    public static void main(String[] args) {
    	HashMap<String, Integer> map = new HashMap<String,Integer>();
    	map.put("Tom", 100);//向HashMap中添加元素   key - value 
    }
}

①<String,Integer>泛型,泛型不能是基本数据类型, 必须是对应的包装类(byte-Byte   short-Short  int-Integer  float-Float  double-Double  boolean-Boolean  char-Character) 

无序:与HashSet相同,HashMap不会按照保存的顺序存储数据;且遍历时不能保证下次结果和上次相同

2.get(Object key)  获取key所对应的value,如

package blog;

import java.util.HashMap;

public class Map {

    public static void main(String[] args) {
    	HashMap<String, Integer> map = new HashMap<String,Integer>();
    	map.put("Tom", 100);//向HashMap中添加元素   key - value
        map.put("Tom", 90); 
    	System.out.println(map.get("Tom"));//输出90,覆盖了原先的值
    }
}

3.size()    获取HashMap集合容器中有多少对key-value,如

package blog;

import java.util.HashMap;

public class Map {

    public static void main(String[] args) {
    	HashMap<String, Integer> map = new HashMap<String,Integer>();
    	map.put("Tom", 100);
    	map.put("Tim", 90);
    	map.put("Tom", 95);
    	System.out.println(map.size());//输出2,同时证明了key不能重复
    }
}

4.isEmpty()      判断HashMap是否为空 ,是则为true,如

package blog;

import java.util.HashMap;

public class Map {

    public static void main(String[] args) {
    	HashMap<String, Integer> map = new HashMap<String,Integer>();
    	System.out.println(map.isEmpty());//输出true
    	map.put("Tom", 100);
    	map.put("Tim", 90);
    	map.put("Tom", 95);
    	System.out.println(map.isEmpty());//输出false
    }
}

5.remove(Object key);        删除HashMap元素,返回对应的value

   remove(key, value); 删除HashMap元素,并判断是否删除成功

package blog;

import java.util.HashMap;

public class Map {

    public static void main(String[] args) {
    	HashMap<String, Integer> map = new HashMap<String,Integer>();
    	System.out.println(map.isEmpty());//输出true
    	map.put("Tom", 100);
    	map.put("Tim", 90);
    	System.out.println(map.remove("Tom"));//输出100
    	System.out.println(map.remove("Tom", 100));
    	}
}

6.clear()    清空Map集合,如

package blog;

import java.util.HashMap;

public class Map {

    public static void main(String[] args) {
    	HashMap<String, Integer> map = new HashMap<String,Integer>();
    	map.put("Tom", 100);
    	map.put("Tim", 90);
    	map.put("Lucy", 90);
    	map.put("Jim", 91);
    	map.clear();
    	System.out.println(map.size());//输出0
    }
}

7.containsKey(Object key)   判断集合中是否包含指定键,包含返回 true,否则返回false

8.containsValue(Object value)   判断集合中是否包含指定值,包含返回 true,否则返回false,如

package blog;

import java.util.HashMap;

public class Map {

    public static void main(String[] args) {
    	HashMap<String, Integer> map = new HashMap<String,Integer>();
    	map.put("Tom", 100);
    	map.put("Tim", 90);
    	System.out.println(map.containsKey("Tom"));//返回true
    	System.out.println(map.containsValue(98));//返回false
    }
}

9.values()  返回Map集合中所有value组成的以Collection数据类型格式数据。如

package blog;

import java.util.Collection;
import java.util.HashMap;

public class Map {

    public static void main(String[] args) {
    	HashMap<String, Integer> map = new HashMap<String,Integer>();
    	map.put("Tom", 100);
    	map.put("Tim", 90);
    	map.put("Lucy", 90);
    	map.put("Jim", 91);
    	Collection<Integer> con = map.values();
    	for (int score : con) {
    		System.out.print(score+" ");//输出100 90 90 91
    	}
    }
}

10.keySet()   返回Map集合中所有key组成的Set集合,如

package blog;

import java.util.HashMap;
import java.util.Set;

public class Map {

    public static void main(String[] args) {
    	HashMap<String, Integer> map = new HashMap<String,Integer>();
    	map.put("Tom", 100);
    	map.put("Tim", 90);
    	map.put("Lucy", 90);
    	map.put("Jim", 91);
    	Set<String> set = map.keySet();
    	for (String key : set) {
    		System.out.println(key+" "+map.get(key));
    	}
    }
}

输出:

因为keySet() 将Map集合中所有key组成了Set集合,Set集合中有iterator()方法,所以可以按下种方式遍历

package blog;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class Map {
    public static void main(String[] args) {
    	HashMap<String, Integer> map = new HashMap<String,Integer>();
    	map.put("Tom", 100);
    	map.put("Tim", 90);
    	map.put("Lucy", 90);
    	map.put("Jim", 91);
    	Set<String> set = map.keySet();
    	Iterator<String> iterator = set.iterator();
    	while(iterator.hasNext()) {
    		String key = iterator.next();
    		System.out.println(key+" "+map.get(key));
    	}
    }
}

结果与上面一样,不过有时顺序可能会不同(无序性)

11.entrySet()  将Map集合每个key-value转换为一个Entry对象并返回由所有的Entry对象组成的Set集合,如

package blog;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;

public class Map {

    public static void main(String[] args) {
    	HashMap<String, Integer> map = new HashMap<String,Integer>();
    	map.put("Tom", 100);
    	map.put("Tim", 90);
    	map.put("Lucy", 90);
    	map.put("Jim", 91);
    	Set<Entry<String, Integer>> Set = map.entrySet();
    	for (Entry<String, Integer> entry : Set) {
    		System.out.println(entry.getKey()+" "+entry.getValue());
    	}	
	}
}

结果与上面相同

同理,因为转成了Set集合,所以可以用iterator()方法遍历,如

package blog;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;

public class Map {

    public static void main(String[] args) {
    	HashMap<String, Integer> map = new HashMap<String,Integer>();
    	map.put("Tom", 100);
    	map.put("Tim", 90);
    	map.put("Lucy", 90);
    	map.put("Jim", 91);
    	Set<Entry<String, Integer>> set = map.entrySet();
    	Iterator<Entry<String, Integer>> iterator = set.iterator();
    	while (iterator.hasNext()) {
    		Entry<String, Integer> entry = iterator.next();
    		System.out.println(entry.getKey()+" "+entry.getValue());
    	}
    }
}

由方法10、11可以总结出HashMap有四种遍历方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值