HashMap 常用方法总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_45104211/article/details/98882567

一、Map集合结构

    Map有两个非接口型子类:Hashtable、AbstractMap

    Hashtable有:Properties实现方法  

    AbstractMap有:HashMap、TreeMap实现方法

    下面详述讲解HashMap集合中的方法与遍历


二、如何创建HashMap对象?

import java.util.HashMap;
public class MapHash {
	public static void main(String[] args) {
		HashMap<String,Integer> map =new HashMap<String,Integer>();
	}
}

    注:HashMap集合中的泛型为Key-Value型,一次输入两个类型的数据,Key充当名字,Value充当数据进行储存

    注:泛型不可以使用基本类型,但是可以把基本类型进行包装从而被使用,包装关系如下:

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

三、HashMap方法总结

         1、put(   , )方法 将 key-value 类型输入到HashMap集合中

              get( key )方法  输入泛型中的key,输出Value;

              size( )方法   输出key-value的个数;

import java.util.HashMap;
public class MapHash {
	public static void main(String[] args) {
		HashMap<String,Integer> map =new HashMap<String,Integer>();
		map.put("Tom", 100);
		map.put("Jim", 99);
		System.out.println(map.size());
		System.out.println(map.get("Tom"));
	}
}

              如上图代码,结果是: 2   100

              先是将两个Key-Value输入进集合,在输出集合长度,最后通过Key找到相应的Value值                            

         2、clear();清空

              isEmpty();判断是否为空

              remove(key);移除某一项并且返回key对应的value

import java.util.HashMap;
public class Csdn {
	public static void main(String[] args) {
		HashMap<String,Integer> map =new HashMap<>();
		map.put("Tom", 100);
		map.put("Jim", 99);
		System.out.println(map.remove("Tom"));
		map.clear();
		System.out.println(map.isEmpty());
	}
}

              返回的结果为:  100    true     

四、HashMap遍历

         1.values():将HashMap中的value导出为Collection<>的变量

import java.util.Collection;
import java.util.HashMap;
public class Csdn {
	public static void main(String[] args) {
		HashMap<String,Integer> map =new HashMap<>();
		map.put("Tom", 100);
		map.put("Jim", 99);
		Collection<Integer> con =map.values();
		for (int i : con) {
			System.out.println(i);
		}
	}
}

         此时输出 100 99 ,这里要注意自动拆箱:Integer 自动装换成 int 类型的常量


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

import java.util.HashMap;
import java.util.Set;
public class Csdn {
	public static void main(String[] args) {
		HashMap<String,Integer> map =new HashMap<>();
		map.put("Tom", 100);
		map.put("Jim", 99);
		Set<String> set =map.keySet();
		for (String letters : set) {
			System.out.println(letters+"   "+map.get(letters));
		}
	}
}

         如图使用get(key)的方法同时输出key——value整体


         使用Iterator

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

         使用set中的iterator()方法进行输出


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

import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
public class Csdn {
	public static void main(String[] args) {
		HashMap<String,Integer> map =new HashMap<>();
		map.put("Tom", 100);
		map.put("Jim", 99);
		Set<Entry<String,Integer>> set =map.entrySet();
		for (Entry<String, Integer> i : set) {
			System.out.println(i.getKey()+"     "+i.getValue());
		}
	}
}

         Entry类中有两个方法: getKey()   getValue ()     可以将HashMap对象转换成Entry对象,这样可以直接调用


         可以将Set对象转换为Iterator进行输出:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;
public class Csdn {
	public static void main(String[] args) {
		HashMap<String,Integer> map =new HashMap<>();
		map.put("Tom", 100);
		map.put("Jim", 99);
		Set<Entry<String,Integer>> set =map.entrySet();
		Iterator<Entry<String,Integer>> iterator =set.iterator();
		while(iterator.hasNext()) {
			Entry<String,Integer> en=iterator.next();
			System.out.println(en.getKey()+"    "+en.getValue());
		}
	}
}

         使用Iterator的对象要和set中的对象进行进行输出

猜你喜欢

转载自blog.csdn.net/weixin_45104211/article/details/98882567