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

Java泛型集合的理解

    博客分类:
  • java
 
阅读更多
[size=medium]什么是泛型?
泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。
Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象。
因为 Map.get() 被定义为返回 Object,所以一般必须将 Map.get() 的结果强制类型转换为期望的类型,如下面的代码所示:
Map m = new HashMap(); 
m.put("key", "value"); 
String result = (String)m.get("key"); 


想让程序编译通过,必须将m.get(“key”)强制转换为String类型,因为这里放入了String类型的值,取得的结果也一定是String类型的。如果你往map里放入了不是String类型的值,那么将会报ClassCastException错误。
理想情况下,您可能会得出这样一个观点,即 m 是一个 Map,它将 String 键映射到 String 值。这可以让您消除代码中的强制类型转换,同时获得一个附加的类型检查层,该检查层可以防止有人将错误类型的键或值保存在集合中。这就是泛型所做的工作。
泛型带来的好处
类型安全
限制了变量定义的类型。
消除强制类型转换
还是拿刚才的例子说
Map<String, String> m = new HashMap<String, String>(); 
m.put("key", "value"); 
String result = m.get("key"); 



上面的代码是不是少了强制转换而且代码看着也简洁多了,这就是泛型的好处之一。平时大家写的时候,编辑器会有个黄色的感叹号来提醒你需要使用泛型。[/size]
分享到:
评论

相关推荐

    Java集合框架及泛型

    4. **基本类型参数**: Java泛型不能直接接受基本类型(如int、char),但可以通过创建对应的包装类(如Integer、Character)来使用。 5. **协变与逆变**: 在泛型中,类型参数的使用会影响类型安全。比如,List是...

    [Java泛型和集合].(Java.Generics.and.Collections).文字版

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

    Java泛型应用实例

    Java泛型是Java编程语言中的一个强大特性,它允许我们在定义类、接口和方法时指定类型参数,从而实现代码的重用和类型安全。在Java泛型应用实例中,我们可以看到泛型如何帮助我们提高代码的灵活性和效率,减少运行时...

    java泛型技术之发展

    Java泛型技术是Java编程语言中的一个重要特性,它在2004年随着Java SE 5.0的发布而引入,极大地增强了代码的类型安全性和可读性。本篇文章将深入探讨Java...理解并熟练掌握Java泛型,是每一个Java开发者必备的技能。

    泛型集合(动态添加按纽)

    泛型集合在编程中是一种强大的工具,特别是在Java和C#等面向对象的编程语言中,它们为程序员提供了类型安全和代码效率。动态添加按钮的概念通常与用户界面(UI)编程有关,比如在Windows Forms或WPF应用中。下面将...

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

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

    java 泛型类的类型识别示例

    在Java编程语言中,泛型(Generics)是一种强大的特性,它允许我们在编写代码时指定容器(如集合)可以存储的数据类型。这提高了代码的安全性和效率...通过学习和理解这些示例,你可以更好地掌握Java泛型类的类型识别。

    java泛型深入.pdf

    总之,深入理解Java泛型能够帮助开发者编写更安全、更健壮的代码。通过掌握泛型的原理和细节,开发者可以有效利用泛型来优化代码设计,提升程序的类型安全,同时在维持程序性能的同时简化代码。

    java泛型的内部原理及更深应用

    通过学习这些知识点,开发者能更好地理解Java泛型的内部原理,以及如何在实际项目中充分利用泛型的特性,提高代码质量和安全性。在这个视频教程中,张孝祥老师将详细讲解这些概念,并通过实例帮助学员深入掌握Java...

    关于C#、java泛型的看法

    例如,C#的泛型集合类如List在运行时可以使用非装箱的值类型,而Java的ArrayList由于类型擦除,对于非引用类型仍需进行装箱操作,这可能导致性能下降。 另一方面,Java的泛型类型擦除带来了一定的灵活性,使得旧的...

    java泛型Demo

    这个"java泛型Demo"可能包含了一些具体的例子,如创建泛型类、泛型方法的使用,以及如何通过泛型处理集合。通过这些示例,你可以更直观地理解泛型的工作原理和实际应用。 总之,Java泛型是提高代码质量、安全性和...

    [Java泛型和集合].

    总之,Java泛型和集合是提高代码质量和效率的关键工具,理解并熟练掌握它们对于成为一名优秀的Java开发者至关重要。通过深入学习本书和相关代码示例,你将能够更好地利用这些特性来编写更安全、更高效的代码。

Global site tag (gtag.js) - Google Analytics