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

泛型的应用(一)

阅读更多

    泛型是一种特殊的类型,它把指定类型的工作推迟到客户端代码声明并实例化类或方法的时候进行。

    为什么我们要在程序中使用泛型呢,JDK5以前,对象保存到集合中就会失去其特性,取出时通常要程序员手工进行类型的强制转换,这样不可避免就会引发程序的一些安全性问题,所以我们一边为了减少不必要的错误,经常使用泛型。下面我们举例说明

    ArrayList list = new ArrayList();

list.add("abc");
Integer num = (Integer) list.get(0);  //运行时会出错,但编码时发现不了

list.add(new Random());
list.add(new ArrayList());
for(int i=0;i<list.size();i++){
	(?)list.get(i);          //此处取出来的对象应转换成什么类型
}

 

  •     注意:泛型是提供给javac编译器使用的,它用于限定集合的输入类型,让编译器在源代码级别上,即挡住向集合中插入非法数据。但编译器编译完带有泛形的java程序后,生成的class文件中将不再带有泛形信息,以此使程序运行效率不受到影响,这个过程称之为“擦除”。
  • 泛形的基本术语,以ArrayList<E>为例:<>念着typeof
  • ArrayList<E>中的E称为类型参数变量
  • ArrayList<Integer>中的Integer称为实际类型参数
  • 整个称为ArrayList<E>泛型类型
  • 整个ArrayList<Integer>称为参数化的类型ParameterizedType 

    现在我们用泛型写几个实例应用

package cn.csdn.Generic;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.junit.Test;

public class Demo01 {
   @Test
   public void test1(){
	   List<String> list =new ArrayList<String>();
	   list.add("abc");
	   list.add("123");
	   list.add("asf");
	   //for循环
	   for(String str:list) {
		System.out.println(str);
	   }
	   //迭代
	   Iterator<String> ite=list.iterator();
	   while(ite.hasNext()){
		   String str=ite.next();
		   System.out.println(str+"这是用的迭代");
	   }

   }
   @Test
   public void test2(){
	   Map<Integer,String> map =new HashMap<Integer,String>();
	   map.put(1,"zhangsan");
	   map.put(2,"lisi");
	   map.put(3,"wangwu");
	   
	   Set<Map.Entry<Integer, String>> set=map.entrySet();
	   
	   for(Map.Entry<Integer, String> ma:set){
		   System.out.println(ma.getKey()+" "+ma.getValue());
	   }
   }
   @Test
   public void test3(){
	   Map<Integer,String> map =new HashMap<Integer,String>();
	   map.put(1,"zhangsan");
	   map.put(2,"lisi");
	   map.put(3,"wangwu");
	   
	   Set<Integer> se =map.keySet();
	   Iterator<Integer> ite=se.iterator();
	   while(ite.hasNext()){
		   int k=ite.next();
		   System.out.println(k+"  "+map.get(k)+"这是用的迭代");
	   }
	   for(Integer i:se){
		   System.out.println(i+"  "+map.get(i)+"这是用的for循环");
	   }
	   
   }
}
分享到:
评论

相关推荐

    Java泛型应用实例

    在Java泛型应用实例中,我们可以看到泛型如何帮助我们提高代码的灵活性和效率,减少运行时的类型检查和强制转换。 首先,让我们理解泛型的基本概念。泛型主要由两部分组成:类型参数和类型边界。类型参数是在类或...

    c# 泛型应用实例

    C# 泛型是.NET框架中的一个重要特性,它允许开发者创建可重用的类型化代码,这些代码可以处理多种数据类型。在C#(Visual Studio 2008及更高版本)中,泛型提供了类型安全性和性能优势,因为它们避免了在运行时进行...

    java泛型的应用

    自定义泛型类也是泛型的一个重要应用,允许我们为自己的类和接口添加类型参数,以确保它们在操作数据时遵循特定的类型规则。自定义泛型类时,需要在类名后面的尖括号`&lt;&gt;`中声明类型参数,然后在类的方法或成员中使用...

    C#中的集合与泛型应用实例

    泛型的另一个重要应用是泛型委托和事件。例如,Action和Func, TResult&gt;是.NET框架提供的泛型委托,它们可以方便地表示无返回值或带返回值的操作。在处理异步编程或者回调函数时,这些泛型委托非常实用。 总结来说,...

    泛型实际应用(简介)

    ### 泛型实际应用简介 #### 一、泛型概念及优势 在计算机科学领域,尤其是面向对象编程中,泛型是一种重要的编程技术,它允许程序员编写类型安全且灵活的代码,这种代码能够处理多种数据类型,同时保持类型检查的...

    泛型集合应用(dictionary<obj,obj>)

    本文将深入探讨“泛型集合应用——Dictionary, Obj&gt;”这一主题,揭示其在实际开发中的广泛应用。 首先,我们来了解什么是泛型。泛型是.NET框架的一个核心特性,它允许我们在编写代码时定义类型参数,这些参数可以在...

    枚举和泛型的应用举例

    例如,我们可以创建一个泛型方法,该方法接受一个枚举类型的参数,这样可以对特定类型的操作进行统一处理。下面是一个简单的例子,展示了如何根据枚举类型执行不同的操作: ```java public &lt;T extends Enum&lt;T&gt;&gt; ...

    c# 泛型、集合应用实例源码

    在.NET框架中,泛型广泛应用于各种集合类,如List、Dictionary, TValue&gt;等。泛型的优势在于,它们可以避免不必要的装箱和拆箱操作,减少类型转换的开销,并确保编译时类型检查的安全性。 **集合** 集合是一组对象的...

    C#泛型类、泛型方法、泛型接口、泛型委托的实例

    本文将深入探讨泛型类、泛型方法、泛型接口和泛型委托,并通过实例来阐述它们的应用。 首先,我们来看泛型类。泛型类是具有一个或多个类型参数的类。类型参数是在定义类时使用的占位符,实际的类型在创建类的实例时...

    WCF中应用泛型

    #### 二、目标:WCF服务中的泛型应用 本章节的目标是在WCF服务契约的操作契约中应用泛型,以实现类似于下面的效果: ```csharp [OperationContract] TMethodName(int dataType) where T : EntityBase; ``` 或者 ...

    浅谈c# 泛型类的应用

    C#中的泛型类是编程中的一个重要概念,它允许我们创建可以处理多种数据类型的类,提高了代码的重用性和效率。下面将详细讲解泛型类的各个方面。 1. **泛型类的基本应用** 泛型类的核心在于类型参数,这使得类能够...

    C__泛型的运用

    ### C# 泛型的应用详解 #### 一、泛型的概念 在C#中,泛型是一种能够编写灵活且类型安全代码的强大工具。通过使用泛型,开发人员可以在不牺牲性能的情况下实现代码重用。简单来说,泛型允许开发者创建可以处理多种...

    泛型集合泛型集合泛型集合

    泛型最常见的应用是创建泛型集合类,如`List&lt;T&gt;`。在C#中,`System.Collections.Generic`命名空间提供了多个泛型集合类,如`List&lt;T&gt;`、`Dictionary, TValue&gt;`等,它们替代了早期的非泛型集合,如`ArrayList`和`...

    C++f 泛型编程应用实例

    C++泛型编程是C++语言中的一个重要特性,它允许开发者编写不依赖特定类型而具有通用性的代码。这种编程范式极大地提高了代码的重用性和灵活性,降低了维护成本。本篇将深入探讨C++泛型编程的应用实例,帮助初学者...

    泛型应用及静态页面生成事例

    结合WATest这个文件名,我们可以猜测这是一个测试用例,可能是用于验证泛型应用或静态页面生成功能的正确性。具体的测试细节可能包括检查泛型类的实例化、操作是否符合预期,以及静态页面生成后的HTML内容是否正确...

    泛型dao 泛型dao 泛型dao

    泛型dao,顾名思义就是一个dao可以对多个实体对象进行持久化。当应用中需要使用到上十张表时,DAO的维护变得日益困难,主要表现在这几个方面: 1)dao类的繁多,很多设计都是一个entity对应一个dao (不同的只有类名...

    Cpp设计新思维_泛型编程与设计模式之应用

    《Cpp设计新思维_泛型编程与设计模式之应用》这本书深入探讨了C++编程中的泛型编程和设计模式的应用,对于提升C++开发者的技术水平具有极高的价值。以下是本书涉及的一些关键知识点: 1. 泛型编程:泛型编程是C++中...

    Delphi中的泛型基础及简单应用

    Delphi中的泛型基础及简单应用

    C++设计新思维:泛型编程与设计模式之应用(PDF)

    《C++设计新思维:泛型编程与设计模式之应用》正是这样一本书,它不仅深入探讨了C++的核心理念,还着重强调了泛型编程与设计模式的实际应用,为开发者提供了一个新的视角来审视和掌握这门语言。 泛型编程是C++设计...

    Python中泛型函数应用案例.pdf

    Python中的泛型函数是一类可以接收不同数据类型参数的函数,并且可以适应不同类型的操作,它们提供一种方式来编写与数据类型无关的代码。Python本身不直接支持泛型类型,但可以通过一些设计模式来模拟泛型行为。文档...

Global site tag (gtag.js) - Google Analytics