泛型类、Map集合详解编程语言
————泛型: JDK1.5之后出现的新特性;用于解决安全问题,是一个类型安全机制。
好处:
1、将运行时期出现的问题ClassCastException ,转移到了编译时期,方便于程序员解决问题,让运行时期问题减少。。
2、避免了强制转换的麻烦。
格式:
通过 来定义要操作的引用数据类型。
在使用java提供的对象时,什么时候写泛型呢?
答:通常在集合框架中很常见,只要见到 就要定义泛型。 其实 就是用来接收泛型的。
当使用集合时,将集合中要存储的数据类型作为参数传递到 中即可。
泛型类:
什么时候定义泛型类?
答: 当类中要操作的引用数据类型不确定的时候, 早期定义Object类来完成扩展; 现在定义泛型来完成扩展。
泛型类定义的泛型,在整个类中有效,如果被方法使用;
那么泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定了。
为了让不同的方法可以操作不同类型,而且类型还不确定,那么就可以将泛型定义在方法上。
特殊之处:
静态方法不可以访问类上定义的泛型。
如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。(在修饰符后面 、 返回值类型前面 :如 static T void)。
高级应用:
? : 通配符,也可以理解是占位符。
? extends E : 可以接收E 类型或者 E的子类型,上限。
? super E : 可以接收E 类型或者 E的父类型 ,下限。
————Map集合:该集合存储键值对。 一对一往里存。而且要保证键的唯一性。
1、添加
put(K key, V value);
putAll(Map ? extends K , ? extends V
2、删除
clear()
remove(Object key)
3、判断
containsValue(Object value)
containsKey(Object key)
isEmpty()
4、获取
get(Object key) size() values()
重要: entrySet() keySet()
Map
| Hashtable : 底层是哈希表数据结构,不可以存入null 键 null 值。该集合是线程同步的。Jdk1.0 效率低。
| HashMap : 底层是哈希表数据结构,允许使用 null 键和 null 值。该集合是线程不同步的。Jdk1.2 效率高。
| TreeMap :底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序。
和Set很像。
其实Set底层就是使用了Map集合。
添加元素,如果添加时,出现相同的键,那么后添加的值会覆盖原有的键值对。
并put方法会返回 被覆盖的值。 例如:
System.out.println( put : + map.put( 01 + jdfkslfh ));
System.out.println( pUt: + map.out( 01 + djksl ));
// 打印输出: jdfkslfh 被返回 , 01 键上的值则为 djksl
可以通过get方法的返回值来判断一个键是否存在,通过返回null来判断
获取map集合中所有的值。
Collection String coll = map.values();/
1、Set k keySet :
将map中所有的键存入到Set集合中。因为Set具备迭代器,所有可以迭代方式取出所有的键,再根据get方法,获取每一个键对应的值。
Map集合的取出原理: 将map结合转换set集合。在通过迭代器取出。
2、Set Map.Entry k,v entrySet:
将map集合中的映射关系存入到了Set集合中,而这个关系的数据类型就是: Map.Entry。
//先获取集合的所有键的set集合,keySet();
Set String keySet = map.keySet();
//有了Set集合,就可以获取其迭代器。
Iterator String it = keySet.iterator();
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/13460.html
cjava相关文章
- 一次生产环境高效利用Go Concurrent Map的记录
- java map 二维数组_Java二维数组实现简单Map
- stl-map和stl-multimap
- 怎么判断map不为空「建议收藏」
- java中map转string_字符串转list集合
- 有序的Map集合_map集合特点
- c++ map和set_STLset和map的区别
- 一文了解source-map
- java数据结构——集合框架及Collection、Map接口的介绍
- 【Go】map 利用率统计
- 不安全的集合类Map
- objectmapper json转对象_json数组转map
- Map的有序性_有序的map集合有哪些
- GoLang16 - Go语言Map(集合)
- 真希望你也明白runtime.Map和sync.Map
- 【Groovy】map 集合 ( map 集合操作符重载 | + 操作符重载 | 代码示例 )
- 【Kotlin】集合操作总结 ( List 集合 | MutableList 集合 | List 集合遍历 | Set 集合 | MutableSet 集合 | Map 集合 | 可变 Map集合 )
- MongoDB Map-Reduce函数使用
- C++ 自定义比较函数(map和multimap)详解
- Java Map.equals()方法:判断Map集合是否与指定的对象相同
- Java Map.put()方法:获取Map集合的所有键名
- 集Oracle中存储Map集的新方法(oracle保存map)
- 如何将Map存储在Redis中(将map存到redis中)
- 警惕Redis Map的频繁变更(redis频繁修改map)
- 科学上网如何使用Oracle MAP(oracle map使用)