Map集合

前言

Map集合与Collection*集合处于通移梯度,Map集合里面都是键值对


一、Map集合里有几个类,他们有什么区别?

Map集合分为HashTable和HashMap,这两个类方式都一样,他们的区别在与HashTable 线程安全,效率低。HashMap 线程不安全,效率高

二、Map集合的特点?

1.键与值对应(互相绑定)
2.键不能重复

三、Map集合的一些方法应用

1.添加元素,获取元素,删除元素,替换元素 

		Map<String, String> ms=new HashMap<String, String>();
		// 添加元素 对应的方法-- put() 会存在两种情况
		//   1.不存在对应的键,做 添加操作
		//   2.如果键存在,做替换操作
		ms.put("JP", "Japan");
		ms.put("CN", "Chine");
		ms.put("DE", "Germany");
		ms.put("FR", "France");
		ms.put("JP", "Japan1234");
		System.out.println(ms.size());
		// 当有两个相同的键时,后面一个键的值替换前面的值
		System.out.println(ms);
		// 获取元素 根据键 对应的方法-- get()
		System.out.println(ms.get("FR"));
		// 删除元素 根据键 对应的方法-- remove()
		ms.remove("JP");
		System.out.println(ms);

2.Map集合的三种遍历方式

第一种拿到所有的键(key)

		Set<String> ks = ms.keySet();
		for (String s : ks) {
			System.out.println("键:"+s+"值:"+ms.get(s));
		}

第二种:拿到所有的值(values)

		Collection<String> vs = ms.values();
		for (String s : vs) {
			System.out.println(s);
		}

第三种:拿到所有的键值对 调用entry方法

		Set<Entry<String, String>> es = ms.entrySet();
		for (Entry<String, String> e : es) {
			// e就是一个键值对
			System.out.println(e.getKey()+"--"+e.getValue());
		}

四:哈希表

哈希表储存是由键(key)和值(value)组成的数据,

在哈希表中,我们可以利用哈希函数快速访问到数组中的目标数据。如果发生哈希 冲突,就使用链表进行存储。这样一来,不管数据量为多少,我们都能够灵活应对。 如果数组的空间太小,使用哈希表的时候就容易发生冲突,线性查找的使用频率也 会更高;反过来,如果数组的空间太大,就会出现很多空箱子,造成内存的浪费。因此, 给数组设定合适的空间非常重要。

五:求字符串中字符的重复次数(HashMap)

		String str="sdasdasndaskhdiaskhdaskdhdasdasasdasasbdiadhihlsajldghd";
		Map<String, Integer> m=new HashMap<String, Integer>();
		while (str.length()>0) {
			int a1=str.length();//记录原来的长度
			String old=str.charAt(0)+"";//字符的第0个字
			str=str.replace(old, "");//取出str里面所有的old
			int a2 = str.length();//取出之后的长度
			m.put(old, a1-a2);//将字符和个数记录到map集合中
		}
		System.out.println(m);

上一篇:Modbus 超时时间设置


下一篇:AB Test 压力测试工具使用整理