集合框架与泛型(二)——Map接口、Collections类和泛型
程序员文章站
2022-05-23 14:22:13
...
Map接口
Map接口:存储一组键值对象,提供key到value的映射
Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作
实现类:HashMap
Map接口常用的方法:
遍历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的特点:
所有数据都上锁,如果一个线程访问了某段数据,其他人都不能访问所有数据
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()方法获取元素
上一篇: 初探Tomcat的架构设计
下一篇: Java集合框架四:泛型和工具类
推荐阅读
-
集合框架与泛型(二)——Map接口、Collections类和泛型
-
java基础语法集合框架与泛型(List和Set)
-
Java入门学习第十三天————泛型、Collections工具类、Set集合、Map集合
-
Java集合框架入门之泛型和包装类
-
20200729集合框架与泛型(Iterator接口,Map接口,Collection类和泛型)
-
集合框架与泛型(二)——Map接口、Collections类和泛型
-
Java集合框架四:泛型和工具类
-
Java集合框架 List集合、Set集合、Map集合 学习泛型与包装类的装箱拆箱
-
集合框架 List,Set,Map和泛型
-
集合框架与泛型(二)——Map接口、Collections类和泛型