API学习HashMap

package com.wonders.week01.collection;

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

/**
 * JDK1.7
 * HashMap
 * (1)继承了AbstractMap类,实现了Map接口
 * (2)哈希表的实现是基本Map接口的,这种实现提供了map所有的选择,并且允许key和value为null.
 * (3)其中hashmap和hashtable大体上是等价的,但是hashmap不是线程安全的,hashtable是线程安全的,并且hashmap是允许key和value都为null的
 * (4)它不保证map集合中的元素排序。它不能保证顺序会随着时间的推移而保持不变。
 * (5)对于基本的get和put操作的时间复杂度是常数阶,对集合视图的迭代要求时间与HashMap实例的“容量”(bucket的数量)以及它的大小(键值对映射的数量)成比例
 * (6)因此,如果迭代性能很重要,那么不设置初始容量过高(或者负载因素过低)非常重要。
 * (7)
 * @author liyongyong
 *
 */
public class HashMapTest {

	public static void main(String[] args) {
		HashMap<String, Integer> hashMap = new HashMap<String, Integer>();
		Map<String, Integer> map = new HashMap<String, Integer>();
		map.put("five", 5);
		map.put("six", 6);
		//将具体的value和映射的key存起来,如果key所映射的value已经存在,则新的value会替换掉原有的value
		hashMap.put("one", 1);
		hashMap.put("two", 2);
		hashMap.put("three", 3);
		hashMap.put("four", 4);
		hashMap.put(null, null);
		//返回hashmap中元素的个数
		int size = hashMap.size();
		System.out.println("hashmap中的元素个数 : " + size);
		//如果hashmap中不包含键值对的映射则返回true,否则返回false
		boolean exist = hashMap.isEmpty();
		System.out.println("hashmap中是否不包含键值对映射 : " + exist);
		//返回key在hashmap中所映射的value的值,如果hashmap中该key没有映射的value,则返回null
		Integer value = hashMap.get("one");
		System.out.println("key=one时所映射的value是 : " + value);
		//如果hashmap中存在该key的映射关系则返回true,否则返回false
		boolean flag = hashMap.containsKey("one");
		System.out.println("是否存在key=one的映射 :" + flag);
		//如果hashmap中存在该value的映射,则返回true,否则返回false
		boolean eValue = hashMap.containsValue(1);
		System.out.println("hashmap中存在value=1的映射关系 :" + eValue);
		//把一个具体的map中的映射关系全部复制到另外一个map中
		//这个map中的这些映射将替换掉具体的map中任何key的映射关系
		hashMap.putAll(map);
		//移除hashmap中key所映射的key和value
		Integer removeKey = hashMap.remove("one");
		System.out.println("移除的key是 : " + removeKey);
		//移除掉hashmap中的所有映射关系,移除以后hashmap就会变为empty
		//hashMap.clear();
		//返回一个把当前的hashmap进行浅克隆后的实例,keys和values是不会被克隆的
		//返回值类型是一个Object类型
		hashMap.clone();
		//获取hashmap中的所有key
		Set<String> keySet = hashMap.keySet();
		for(String str:keySet){
			System.out.print(str + "	");
		}
		System.out.println();
		//获取hashmap中的所有value
		Collection<Integer> values = hashMap.values();
		for(Integer integer:values){
			System.out.print(integer + "	");
		}
		System.out.println();
		//返回hashmap中的键值对,等号左边是key,等号的右边是value
		Set<Entry<String,Integer>> mapEntry = hashMap.entrySet();
		for (Entry<String, Integer> entry : mapEntry) {
			System.out.print( entry + "	");
		}
	}
}

这里写图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值