学习日志——2019/08/07

本文深入解析了Map集合的特点和使用方式,对比了Map与Collection的不同,详细介绍了Map的常见操作如添加、获取、删除等,同时提供了HashMap和TreeMap的具体应用案例。

Map集合

Map集合没有继承Collection接口,其提供点的是key到value的映射,Map中不能包含相同的key,每个key只能映射一个value。
我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同:

A:Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储

B:Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。

C:Collection中的集合称为单列集合,Map中的集合称为双列集合。

Map常用功能

A:映射功能:

   V put(K key, V value) :以键=值的方式存入Map集合

B:获取功能:

     V get(Object key):根据键获取值
	int size():返回Map中键值对的个数

C:判断功能:

    boolean containsKey(Object key):判断Map集合中是否包含键为key的键值对
    boolean containsValue(Object value):判断Map集合中是否包含值为value键值对
 boolean isEmpty():判断Map集合中是否没有任何键值对 

D:删除功能:

  void clear():清空Map集合中所有的键值对
  V remove(Object key):根据键值删除Map中键值对

E:遍历功能:

  Set<Map.Entry<K,V>> entrySet():将每个键值对封装到一个个Entry对象中,再把所有Entry的对象封装到Set集合中返回
  Set<K> keySet() :将Map中所有的键装到Set集合中返回
  Collection<V> values():返回集合中所有的value的值的集合
  • eg:
    在项目中创建UpdateStu,在主方法中创建Map集合,并获取Map集合中所有key对象的集合和所有values值的集合,最后遍历。
package e6.Map;

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

public class UpdateStu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HashMap<String,String> map = new HashMap<>();	//创建Map对象
		//向集合中添加对象
		map.put("01", "李同学");
		map.put("02", "王同学");
		Set<String> set=map.keySet();		//构建Map集合中所有key对象的集合
		Iterator<String> it = set.iterator();
		System.out.println("key集合中的所有元素:");
		while(it.hasNext()) {
			System.out.println(it.next());
		}
		Collection<String> coll=map.values();	//构建Map集合中所有value值的集合
		it=coll.iterator();
		System.out.println("values集合中的元素:");
		while(it.hasNext()) {
			System.out.println(it.next());
			
		}
		
	}

}

Map接口实现类

通过HashMap类实例化Map集合,并遍历该Map集合,然后创建TreeMap实例实现将集合中的元素顺序输出

public class Emp {
	private String e_id;
	private String e_name;
	public Emp( String e_id,String e_name) {
		this.e_id = e_id;
		this.e_name = e_name;
	}
	public String getE_id() {
		return e_id;
	}
	public void setE_id(String e_id) {
		this.e_id = e_id;
	}
	public String getE_name() {
		return e_name;
	}
	public void setE_name(String e_name) {
		this.e_name = e_name;
	}
	
} 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class MapText { // 创建类MapText
	public static void main(String[] args) { // 主方法
		Map<String, String> map = new HashMap<>(); // 由HashMap实现的Map对象
		Emp emp = new Emp("351", "张三"); // 创建Emp对象
		Emp emp2 = new Emp("512", "李四");
		Emp emp3 = new Emp("853", "王一");
		Emp emp4 = new Emp("125", "赵六");
		Emp emp5 = new Emp("341", "黄七");

		map.put(emp4.getE_id(), emp4.getE_name()); // 将对象添加到集合中
		map.put(emp5.getE_id(), emp5.getE_name());
		map.put(emp.getE_id(), emp.getE_name());
		map.put(emp2.getE_id(), emp2.getE_name());
		map.put(emp3.getE_id(), emp3.getE_name());

		Set<String> set = map.keySet(); // 获取Map集合中的key对象集合
		Iterator<String> it = set.iterator();
		System.out.println("HashMap类实现的Map集合,无序:");
		while (it.hasNext()) { // 遍历Map集合
			String str = (String) it.next();
			String name = (String) map.get(str);
			System.out.println(str + " " + name);
		}
		TreeMap<String, String> treemap = new TreeMap<>(); // 创建TreeMap集合对象
		treemap.putAll(map); // 向集合添加对象
		Iterator<String> iter = treemap.keySet().iterator();
		System.out.println("TreeMap类实现的Map集合,键对象升序:");
		while (iter.hasNext()) { // 遍历TreeMap集合对象
			String str = (String) iter.next(); // 获取集合中的所有key对象
			String name = (String) treemap.get(str); // 获取集合中的所有values值
			System.out.println(str + " " + name);
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值