java中的HashMap

  • Map接口

概述

1.Map集合基于 key/value)映射。每个键最多只能映射一个值。键可以是任何引用数据类型的值,不可重复;值可以是任何引用数据类型的值,可以重复;键值对存放无序。

Map常用实现类:

1.HashMap:允许使用 null 值和 null ;此类不保证映射的顺序;在多线程操作下不安全

2.LinkedHashMap:基于哈希表和链接列表的实现类;具有可预知的迭代顺序(双重链接表的有序性)

3.PropertiesHashtable的一个子类;属性列表中每个键及其对应值都是一个字符串;在多线程操作下安全

  • HashMap常用方法

1.put(K key, V value) 将键(key/值(value)映射存放到Map集合中

import java.util.HashMap;

public class Map {
	
	public static void main(String[] args) {
	    HashMap<String,Integer> map = new HashMap<String,Integer>();
	    //put方法添加key和value,需要设置好两个泛型
            map.put("Tom", 100);
	}
}

HashMap的put方法中,泛型不能是基本数据,必须是包装类,常用数据及其对应包装类如下:

byte-Byte         short-Short       int-Integer       float-Float      double-Double     boolean-Boolean      char-Character

之前在HashSet里讲到,key值由于底层代码的编写设定,是不能重复的,但和HashSet不同,如果我们添加了相同的key,但其对应的value不同的话,value的值会被更新为添加的值,这里和get方法一同演示

2.get(Object key) 返回指定键所映射的值,没有该key对应的值则返回 null

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);                  //put方法添加"Tom"- 100
		System.out.println(map.get("Tom"));   //get方法返回"Tom"对应的值 100
		map.put("Tom", 120);                  //put方法添加"Tom"- 120
		System.out.println(map.get("Tom"));   //get方法返回"Tom"对应的值 120

	}
}

3.size()  返回Map集合中数据数量

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);
		System.out.println(map.size()); //size方法返回集合中有多少对key-value
	}
}

4.clear() 清空Map集合

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);
		System.out.println(map.size());    //size返回集合中对数为1
		map.clear();                       //clear方法清空集合中元素
		System.out.println(map.size());    //size返回集合中对数为0
	}
}

5.isEmpty () 判断Map集合中是否有数据,如果没有则返回true,否则返回false

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);
		System.out.println(map.size());    //size返回集合中对数为1
		map.clear();                       //clear方法清空集合中元素
		System.out.println(map.size());    //size返回集合中对数为0
                System.out.println(map.isEmpty());//isEmpty判断集合中无数据,返回true
	}
}

6.remove(Object key) 删除Map集合中键为key的数据并返回其所对应value值。

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);
		System.out.println(map.remove("Tom"));   //remove方法删除“Tom”为key的数据
                                                         //并返回对应的value 100 
	}
}

7.values()  返回Map集合中所有value组成的以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("Jim", 110);
		System.out.println(map.values()); 
	}
}

返回值以Collection数据类型格式储存,如图

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

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

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);
		System.out.println(map.containsKey("Tom"));   //判断出集合中有key为“Tom"
		System.out.println(map.containsValue(110));   //判断出集合中无value为110 
	}
}

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

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("Jim", 110);
		System.out.println(map.keySet());  //返回集合中的所有key存储在Set集合中
	}
}

与values方法的使用方法相同,不过值得注意的是key返回在了Set集合中而不是Collection。

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

import java.util.HashMap;
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("Jim", 110);
		Set<Entry<String, Integer>> set = map.entrySet();//将map中成对的key-value以
                                                                 //单个量的形式赋给Entry
                                                                 //再将每个Entry对象存入Set
                                                                 //集合中
		for (Entry<String, Integer> entry : set) {
			System.out.println(entry.getKey()+":"+entry.getValue());
                        //输出结果为Tom:100   Jim:110
		}
		
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值