欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

集合框架与泛型(二)——Map接口、Collections类和泛型

程序员文章站 2022-05-23 14:22:13
...

Map接口

Map接口:存储一组键值对象,提供key到value的映射
Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作
实现类:HashMap

Map接口常用的方法:

集合框架与泛型(二)——Map接口、Collections类和泛型

遍历Map集合方法:
	方法1:通过迭代器Iterator实现遍历
	方法2:增强型for循环 
	方法3:键值对
	
遍历的方式:
	1、使用entrySet方法获取键值对的集合
		Set entry=map.entrySet();
		for (Object obj:entry){
			System.out.println(obj);
		}

	2、遍历key的方式
		Set keys=map.keySet();
		for (Object key :keys) {
			System.out.println(key+":"+ map.get(key));
		}

		//迭代器遍历key的方式
		Set keys=map.keySet();
		Iterator itr=keys.iterator();
		while (itr.hasNext() ){
			System.out.println(itr.next());
		}

	3、遍历value的方式
	Collection values = map.values();
	for (Object value:values) {
		System.out.println(value);
	}

注:
	1、数据添加到HashMap集合后,所有数据的数据类型将转换为Object类型,所以从其中获取数据时需要进行强制类型转换。
	2、HashMap类不保证映射的顺序,特别是不保证顺序恒久不变。

注:
其他常用实现类:
	List接口:
		Vector:线程安全的list集合
        ConcurrentLinkedList:线程安全的链式表
	Set接口:LinkedHashSet:有顺序的HashSet
	Map接口:ConcurrentHashMap:线程安全的Map
		对所有数据分段上锁
	HashTable的特点:
		所有数据都上锁,如果一个线程访问了某段数据,其他人都不能访问所有数据

集合框架与泛型(二)——Map接口、Collections类和泛型

Collections类

Collections类定义了一系列用于操作集合的静态方法
注:Collections和Collection是不同的,前者是集合的操作类,后者是集合接口。

Collections提供的常用静态方法:
	sort():排序 
    binarySearch():查找 
    max()\min():查找最大\最小值

Collections排序:
	1、Collections类可以对集合进行排序、查找和替换操作
	2、实现一个类的对象之间比较大小,该类要实现Comparable接口 
    	重写compareTo()方法:用于比较此对象与指定对象的顺序,如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
    	compareTo()方法的定义语法:
    		int compareTo(Object obj);

泛型

泛型定义:
	将对象的类型作为参数,指定到其他类或者方法上,从而保证类型转换的安全性和稳定性(本质是参数化类型)
	
泛型集合:
	泛型集合可以约束集合内的元素类型 
	
典型泛型集合ArrayList<E>、HashMap<K,V> 
	1、<E>、<K,V>表示该泛型集合中的元素类型 
	2、泛型集合中的数据不再转换为Object
	
如何解决以下强制类型转换时容易出现的异常问题?
	1、List的get(int index)方法获取元素 
	2、Map的get(Object key)方法获取元素
	3、Iterator的next()方法获取元素
相关标签: hashmap java