`
xiaoxuan_blog
  • 浏览: 30030 次
  • 性别: 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泛型和集合].(Java.Generics.and.Collections).文字版

    Java泛型和集合是Java编程语言中的核心特性,它们极大地提高了代码的类型安全性和可读性,同时也简化了集合操作。本资料 "[Java泛型和集合].(Java.Generics.and.Collections).Maurice.Naftalin&amp;Philip.Wadler....

    [Java泛型和集合].

    Java泛型和集合是Java编程语言中的核心特性,它们极大地提高了代码的类型安全性和可读性,同时也简化了集合操作。本资料主要基于Maurice Naftalin和Philip Wadler合著的《Java泛型和集合》进行讨论。 首先,我们要...

    java集合与泛型[参照].pdf

    在Java.util包中,我们找到了Collection接口及其实现类,这是整个集合框架的基础。集合框架由两个主要部分构成:Collection和Map。 Collection接口是所有集合类型的父接口,它定义了对一组对象进行操作的基本方法。...

    学士后Java集合框架和泛型课后习题答案

    1. **集合接口**:List、Set、Map是Java集合框架的三大接口。List接口代表有序且可重复的元素序列,如ArrayList和LinkedList;Set接口代表无序且不允许重复元素的集合,如HashSet和TreeSet;Map接口则存储键值对,如...

    Java泛型和集合-英文版

    根据提供的文件信息,我们可以确定本书的标题为《Java泛型和集合》(Java Generics and Collections),作者为Maurice Naftalin和Philip Wadler。该书详细介绍了Java中的泛型(Generics)特性以及集合(Collections...

    Day17 Java 集合和泛型.pdf

    Java集合框架是Java编程语言中用于存储和...本知识点通过介绍Java中Map接口及其常见实现类,详细阐述了Map的核心概念、操作方法和不同实现类的特性和应用场景,对于Java集合框架的学习者来说,是不可或缺的基础知识。

    Java Generics and Collections (Java泛型与集合)

    Java泛型与集合是Java编程中的核心概念,它们在实际开发中扮演着至关重要的角色。本书"Java Generics and Collections"深入探讨了这两个主题,帮助开发者编写更安全、更高效且可维护的代码。 首先,让我们来理解...

    Java源码泛型的集合类应用.rar

    6. **原始类型与类型擦除**:Java泛型是通过类型擦除实现的,这意味着在运行时所有的泛型信息都会被移除。为了保持向后兼容,Java允许使用未指定类型的原始类型(如`List`而非`List&lt;String&gt;`),但这样会失去泛型...

    泛型与集合类.pdf

    Java泛型是一种参数化类型机制,允许在编译时提供类型检查和消除类型转换。它主要用于集合框架中,以确保在编译期间元素类型的一致性。泛型类或接口中的类型参数,通常以字母如T(Type)表示。 泛型类的定义语法是...

    JAVA泛型与集合框架.ppt

    Java泛型与集合框架是Java编程中至关重要的概念,它们极大地增强了代码的可读性、类型安全性以及效率。泛型是Java 5引入的新特性,主要用于集合类,它允许在编译时进行类型检查,避免了运行时的类型转换异常。 泛型...

    实验七:Java集合与泛型

    在本次实验中,我们深入学习了Java集合框架中的两个主要部分:List接口和Map接口,以及它们的主要实现类,并探讨了泛型的概念。 首先,我们了解了集合的概念,它是一个可以存储多个对象的容器。集合框架的体系结构...

    java集合与泛型.pdf

    Java泛型使得集合能够持有特定类型的对象。当使用泛型集合时,可以在编译时捕获诸如错误类型插入集合这样的错误。泛型的使用减少了强制类型转换的需要,并使得集合的使用更为安全。 在Java集合框架中,迭代器...

    Java集合、泛型和枚举

    集合、泛型和枚举都是Java开发中常见的概念,它们在处理数据和编写代码时起到关键作用。 首先,Java集合是用于存储一组对象的容器。在Java中,集合分为两大类:`Collection`和`Map`。`Collection`接口是所有单一值...

    JAVA泛型与集合框架PPT课件PPT学习教案.pptx

    JAVA泛型与集合框架知识点总结 JAVA泛型是JDK1.5中引入的一种机制,主要目的是可以建立具有类型安全的集合框架,如链表、散列映射等数据结构。泛型类的声明可以使用“class 名称&lt;泛型列表&gt;”语法,例如:class ...

    java 一个关于泛型的简单例子

    泛型是Java编程语言中的一个重要特性,它引入于JDK 5.0,极大地提高了代码的类型安全性和可读性。...在实际项目中,泛型广泛应用于集合框架(如List、Set、Map等),以及自定义的数据结构和算法实现中。

Global site tag (gtag.js) - Google Analytics