`
xiaoxuan_blog
  • 浏览: 28903 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java基础之泛型,Map集合

阅读更多

泛型:

 

JDK1.5版本以后出现的新特性。用于解决安全问题,是类型一个安全机制。

 

好处:

<!--[if !supportLists]-->1.<!--[endif]-->将运行时期出现问题ClassCastException,转移到了编译时期。

<!--[if !supportLists]-->a) <!--[endif]-->方便与程序员解决问题。让运行事情问题减少,安全。

<!--[if !supportLists]-->2.<!--[endif]-->避免了强制转换麻烦。

泛型类:

什么时候定义泛型类?

当类中要操作的引用数据类型不确定的时候

早期定义Object来完成扩展,  现在定义泛型来完成扩展

泛型方法:

泛型类定义的泛型,在整个类中有效,如果被方法使用,

那么泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定了。

 

为了让不同方法可以操作不同类型,而且类型还不确定。

那么可以将泛型定义在方法上。

 

在方法上定义泛型 ,<  >放在返回值前面。

 

特殊之处:

静态方法不可以访问类上定义的泛型。

如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。

----------------------------------------------------------------------------------------------------------------------

Map

 

Map集合:该集合存储键值对。 一对一对往里存。而且要保证键的唯一性。

<!--[if !supportLists]-->1.<!--[endif]-->添加、

<!--[if !supportLists]-->a) <!--[endif]-->put(K key, V value)

<!--[if !supportLists]-->b) <!--[endif]-->putAll(Map<? extends K,? extends V> m)

<!--[if !supportLists]-->2.<!--[endif]-->删除、

<!--[if !supportLists]-->a) <!--[endif]-->clear(); / /  移除

<!--[if !supportLists]-->b) <!--[endif]-->remove(Object key)

<!--[if !supportLists]-->3.<!--[endif]-->判断、

<!--[if !supportLists]-->a) <!--[endif]-->containsValue(Object value)

<!--[if !supportLists]-->b) <!--[endif]-->containsKey(Object key)

<!--[if !supportLists]-->c) <!--[endif]-->isEmpty()

<!--[if !supportLists]-->4.<!--[endif]-->获取、

<!--[if !supportLists]-->a) <!--[endif]-->get(Object key)

<!--[if !supportLists]-->b) <!--[endif]-->size()

<!--[if !supportLists]-->c) <!--[endif]-->values()

 

Map

|----Hashtable:底层是哈希表数据结构,不可存入null键、值,该集合线程同步的。JDK1.0,效率低

|----HashMap:底层是哈希表数据结构,可存入null键、值,该集合线程不同步的。

JDK1.2,效率高

|----TreeMap:底层是二叉树数据结构,线程不同步,可以用于给map集合中的键排序。

 

和Set很像。__________________-其实,Set底层就是勇士了Map集合。

----------------------------------------------------------------------------------------------------------------------

map集合的两种取出方式:

 

 

<!--[if !supportLists]-->1.<!--[endif]-->Set<k>  keySet:将map中所有的键存入到Set集合。因为set具备迭代器。

所以可以迭代方式取出所有的键,在根据get方法,获取每一个键对应的值。

Map集合的取出原理:将map集合转成set集合。在通过迭代器取出。

<!--[if !supportLists]-->2.<!--[endif]-->Set<Map.Entry<k,v>> entrySet:将Map集合中的映射关系存入到了set集合中,

而这个关系的数据类型就是:Map.Entry

 

Map.Entry:  其实Entry也是一个接口,它是Map接口中的一个内部接口(且是public的和static的)。  (同内部类)。

 

什么时候使用map集合呢?

当数据之间存在着映射关系时,就要先想到map集合。

Collections有个shuffle方法,可以把list集合的元素随机排放(同扑克洗牌)。

集合变数组。

Collection接口中的toArray方法。

<!--[if !supportLists]-->1.<!--[endif]-->执行类型的数组到底要定义多长呢?

当指定类型的数组长度小于集合的size,那么该方法内部会创建一个新的数组,长度为集合的size。

当指定类型的数组长度大于集合的size,就不会新创建了数组,而是使用传递进来的数组。

所以创建一个刚刚好的数组最优。

<!--[if !supportLists]-->2.<!--[endif]-->为什么要将集合变数组?

为了限定对元素的操作。不需要进行增删了

 

<!--EndFragment-->

分享到:
评论

相关推荐

    java 集合和泛型 1. Map接口 2. HashMap底层实现 3. Hash数据结构和算法 4. 红黑树数据结构和算法

    java 集合和泛型 1. Map接口 2. HashMap底层实现 3. Hash数据结构和算法 4. 红黑树数据结构和算法

    实验七:Java集合与泛型

    本次实验掌握了集合的概念、体系结构、分类及使用场景,了解了Set接口及主要实现类(HashSet、TreeSet),了解了解List接口及主要实现类(ArrayList、LinkedList、Vector),掌握ArrayList的使用及其与Vector的区别,...

    06_第6章 泛型与集合1

    第六章泛型与集合Ø 理解Java集合框架的结构Ø 掌握Java迭代器接口的使用Ø 掌握List结构集合类的使用Ø 掌握Set结构集合类的使用Ø 掌握Map结构集

    将Map转换成Java实体

    使用 Core Java JDK1.8,将Map对象转换成Java实体对象的工具类完整代码。仅供交流学习。

    Java基础 — 13 Map集合

    ** Map集合** 定义: 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象...

    实验05 Java集合.doc

    3、编写程序练习Map集合的基本使用: 1)创建一个只能容纳String对象的person的HashMap集合; 2)往集合中添加5个"键-值"对象: "id"-"1"; "name"-"张三"; "sex"-"男"; "age"-"25"; "hobby"-"爱学Java" 3)对...

    Java基础知识点总结.docx

    把map集合转成set的方法 82 使用集合的技巧 83 Collections--集合工具类 83 Arrays—数组对象工具类 84 增强for循环 85 可变参数(...) 86 枚举:关键字 enum 86 自动拆装箱 86 泛型 87 &lt;java.lang&gt;System 89 &lt;java...

    java集合知识-map、set等

    Set:元素不可以重复,是无序。p508 Set接口中的方法和Collection一致。 |--HashSet: 内部数据结构是哈希表 ,是不同步的。 如何保证该集合的元素唯一性呢? 是通过对象的hashCode和equals...(是由于没有使用泛型...

    Java基础最全笔记文档

    6. 集合工具类Collections、Map集合、集合嵌套、不可变集合 7. Stream流、异常处理 8. Logback日志框架、阶段项目 9. File、方法递归、字符集、IO流(一) 10. IO流(二) 11. 多线程 12. 网络编程 13. 单元测试、...

    Java集合框架 Map和泛型

    Map集合  1.特点:该集合存储键值对。一对一对往里存。而且要保证键的性。  2.常用方法:  1.添加:v put(k key , v value); 将数据以键值对的方式存进集合中。  void putAll(Map&lt;? extends k,? ...

    Java 基础核心总结 +经典算法大全.rar

    -、Iterator Iterable ListIterator 二、Map 和 Collection 接口Map 集合体系详解 HashMap LinkedHashMap TreeMap WeakHashMap Hashtable Collection 集合体系详解 Set 接口 AbstractSet 抽象类SortedSet 接口...

    java泛型解析

    泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值...

    java泛型详解

    泛型(Generic type 或者generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值...

    Java 基础面试题

    该文档主要整理了常见的Java基础面试题,包含以下内容: 1. 抽象类和接口的区别 2. 什么时候使用抽象类,什么时候使用接口 3. 八大基本数据类型,所占字节数 4. List、Set、Map的区别 5. 什么情况下使用List、...

    Java基础(总).html

    java基础包括 条件判断,循环,数组,面向对象,API,IO,泛型,集合,Map,线程,注解,反射

    JAVA核心知识点整理.zip

    集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。 Collection:Collection 是集合 List、Set、Queue 的最基本的接口。 Iterator:迭代器,可以通过迭代器遍历集合中的...

    Java基础知识点.html

    ClassLoader 反射 Stream 流 函数式编程 Lambda 表达式 网络编程-协议 网络编程-端口 网络编程-IP 多线程 IO流-字节流 IO流-字符流 IO流-转换流 File Map HashMap 序列化和反序列化 可变参数 类型通配符 泛型 ...

    JavaSE 五万字总结.pdf

    Java基础语法 类型转换 运算符 流程控制 循环 Random 数组 方法 方法重载 递归 二进制 类和对象 成员变量局和部变量 封装 构造方法 String 集合 继承 GIT 抽象类 多态 Java8 异常 泛型 Map File IO 多线程 线程池 ...

    Java领域基础部分JavaSE笔记

    Java集合框架(List, Set, Map等) 适用人群 初学者:对编程感兴趣,希望从基础学起的新手。 在校学生:计算机科学或相关专业的学生,需要学习Java编程语言。 自学者:希望通过自学提升编程技能的个人。 职业开发者...

    Java面试题合集最新版2024.zip

    集合框架:熟悉Java集合框架中的List、Set、Map等接口及其实现类,如ArrayList、HashSet、HashMap等。 泛型:理解泛型的概念及其在Java中的应用,如泛型类和泛型方法。 并发编程:了解Java中的线程、同步、锁等机制...

Global site tag (gtag.js) - Google Analytics