`

泛型学习—01

阅读更多

package 泛型1;
/**
 * 定义一个泛型类,并且 里面可以同时传入三个不同类型的数据
 */
public class GenericsArrayList<T,K,B> {
 
 private T[] arr1;
 private K[] arr2;
    private B[] arr3;
 private int index;
 private int index2;
 private int index3;
 
 
 //默认的构造方法
 @SuppressWarnings("unchecked")
 public GenericsArrayList() {
  arr1 = (T[]) new Object[10];
  arr2 = (K[]) new Object[10];
  arr3 = (B[]) new Object[10];
 }
 
 //重载构造方法,初始化数组的大小
 @SuppressWarnings("unchecked")
 public GenericsArrayList(int size) {
  arr1 = (T[]) new Object[size];
  arr2 = (K[]) new Object[size];
  arr3 = (B[]) new Object[size];
 }
 
 //定义增加一个元素的方法
 public void add(T var,K var2,B var3) {
  arr1[index++] = var;
  arr2[index2++] = var2;
  arr3[index3++] = var3;
 }
 
 
 //定义返回一个元素的方法
 public T geteLme(int index) {
  return arr1[index];
 }
 
 public K  geteLme2(int index) {
  return arr2[index];
 }
 
 public B  geteLme3(int index) {
  return arr3[index];
 }
 
 //同时返回三个元素的方法
 public Object get(int index) {
  return arr1[index]+" "+arr2[index]+"  "+arr3[index];
 }

}

package 泛型1;
/**
 * 入口函数类,实现GenericsArryList中的各个方法
 */

public class TestGenericsArrayList {
 public static void main(String[] args) {
     //创建一个泛型的对象,并初始化各数组
  GenericsArrayList<Integer,String,Boolean> arry = new GenericsArrayList<Integer,String,Boolean>();
     arry.add(1,"小红",true);
     arry.add(2, "小明",false);
     arry.add(3, "小张",true);
    
     //打印出各个类型的元素
    System.out.println("分别输出各个类型的数据如下:");
    System.out.print(arry.geteLme(0)+" ");
    System.out.print(arry.geteLme(1)+" ");
    System.out.println(arry.geteLme(2));
   
    System.out.print(arry.geteLme2(0)+" ");
    System.out.print(arry.geteLme2(1)+" ");
    System.out.println(arry.geteLme2(2));
   
    System.out.print(arry.geteLme3(0)+" ");
    System.out.print(arry.geteLme3(1)+" ");
    System.out.println(arry.geteLme3(2));
   
    System.out.println("一起输出各个类型的数据如下:");
    System.out.println(arry.get(0));
    System.out.println(arry.get(1));
    System.out.println(arry.get(2));
 }
 
}

程序运行结果:

分别输出各个类型的数据如下:
1 2 3
小红 小明 小张
true false true
一起输出各个类型的数据如下:
1 小红  true
2 小明  false
3 小张  true

分享到:
评论

相关推荐

    学习泛型语法1

    泛型是Java编程语言中的一个强大特性,它允许在类、接口和方法中使用类型参数,从而...文件“01_泛型语法(上).wmv”很可能是这个教程的视频部分,包含了上述所有概念的详细讲解,帮助你更直观地理解和掌握泛型的使用。

    JavaSE基础学习资料文档

    首先,第01章《初识JAVA》介绍了Java的历史背景、特性以及开发环境的搭建,包括JDK的安装和配置,以及使用IDE如Eclipse或IntelliJ IDEA进行开发的基本操作。这一章是Java学习的起点,让初学者对Java有一个全面的认识...

    C++ 学习系统实现

    《C++学习系统实现》 C++学习系统是一种专门针对C++编程语言设计的教学平台,旨在帮助初学者和进阶...该系统提供的分部分学习资源,如part01到part11,分别涵盖了不同主题的教程和示例,方便用户按需学习,逐步提高。

    C#初级中级学习代码 每个知识点都可以正常使用 C#详细源码

    资源内容:01委托的基本认识,02委托的基本应用,03委托的基本应用练习与总结,04_02自己写泛型委托,04_03Action泛型委托,04泛型委托,05泛型委托Func,06多播委托,07匿名方法,08Lambda表达式简介之输入参数,09匿名方法、...

    深入浅出 GENERIC.01

    假设"GENERIC.01"是某个泛型库的一部分,它可能是实现了一些基础的泛型操作,如容器、迭代器或其他通用算法。在C++中,STL(标准模板库)就是使用模板的一个经典例子,其中的容器(如vector、list、map等)和算法...

    3_JavaSE01.rar_SE01_java_pocket5dd_thosel2r

    在这个"3_JavaSE01.rar"压缩包中,包含了丰富的Java SE编程学习资源,特别是关于Java泛型、内部类以及API的实践代码。让我们深入探讨这些主题。 **Java泛型** Java泛型是Java 5引入的一项重要特性,它允许在类、...

    java初学者学习源代码day01.zip

    - **集合框架**:学习ArrayList、LinkedList、HashSet、HashMap等集合类的使用,以及泛型的概念。 - **JVM**:理解Java虚拟机的工作原理,包括类加载、内存管理和垃圾回收。 通过深入学习和实践"java初学者学习源...

    小白实操-Swift基础学习案例源代码工程案例(超详细).zip

    01-类和结构体 02-闭包表达式和闭包 03-对象 04-继承 05-协议 06-Error 07-泛型 08-扩展案例 09-访问权限案例 10-高级运算符 11-字面量协议和模式匹配室例 12-内存管理室例 13-指针案例 14-0C和Swift混编 15-多线程...

    高质量c/c++编程学习视频01

    【高质量C/C++编程学习视频01】是一个针对已有C/C++基础知识的学习资源,旨在提升编程者对这两种语言的理解和应用水平,特别是关注代码的质量。本视频课程将深入讲解C/C++编程中的关键概念、最佳实践和常见陷阱,...

    JAVA系统学习PPT资料

    首先,"01 Java SE"部分涵盖了Java Standard Edition(Java SE)的基础知识。Java SE是Java的核心,包含了开发和运行桌面应用、服务器应用以及嵌入式系统的必要工具和API。学习Java SE,你需要理解基础语法,如变量...

    Swift学习代码.zip

    5. **Day 03**:第三天的学习可能涉及Swift的高级特性,如协议(protocols)、泛型(generics)、可选链(optional chaining)和强制解包(forced unwrapping)。 6. **Day 04**:最后一天可能包含更进阶的主题,...

    java学习课件,这是我们这学期学习老师给的

    "chapter05泛型、枚举与For语句的简化写法.ppt"介绍了Java中的泛型、枚举类型和增强的for循环,这些都是提高代码可读性和复用性的高级特性。 "2009-2010(1)chapter11多线程程序设计.ppt"涵盖了Java的并发编程,多...

    良葛格Java JDK 5.0学习笔记ch01

    Java JDK 5.0是Java发展历程中的一个重要里程碑,它引入了许多新特性,极大地提升了开发效率和代码质量。...通过阅读"良葛格Java JDK 5.0学习笔记ch01",你可以深入理解这些概念,并提升自己的Java技能。

    JAVA 学习记录一CoreJava.rar

    【标签】"JAVA 01" 暗示这是 Java 学习系列的第一个部分,可能是一个逐步进阶的学习计划,适合初学者或希望巩固基础的开发者。 【压缩包子文件的文件名称列表】中的 "JAVA 学习记录一CoreJava.pdf" 提供了学习材料...

    swift学习大礼包--01

    Swift学习大礼包--01,这是一个专为Swift初学者准备的资源集合,旨在帮助你全面了解并掌握这门由Apple开发的现代化编程语言。Swift以其简洁、安全和高性能的特点,深受开发者喜爱,尤其在iOS、macOS、watchOS以及...

    jdbc01.rar

    这个项目可以帮助初学者理解如何在实际应用中使用JDBC、泛型和反射来构建数据库操作工具,同时也可以作为学习数据库与Java交互的实践案例。通过这个例子,开发者可以学习如何有效地管理和操作数据库,提升代码的复用...

    java基础学习资料

    每个文件名如"01.JAVA_01"可能代表一个章节或主题,例如,01可能是介绍Java环境的配置,02可能是关于基础语法的讲解,以此类推。通过逐步学习和实践这些文件中的内容,初学者将能够建立起坚实的Java编程基础。同时,...

    C# 基础知识学习资料

    10. **泛型**:泛型可以创建类型安全的容器,允许在不指定具体类型的情况下编写代码,提高了代码的可重用性。 11. **异步编程**:C# 5.0引入了async/await关键字,用于编写非阻塞的异步代码,提高程序的响应性能。 ...

    达内Java大数据 Day01练习题及答案

    在“达内Java大数据 Day01练习题及答案”这个学习资源中,主要涵盖了Java编程语言的基础知识,这是学习Java大数据的重要前提。Day01的练习题旨在帮助初学者巩固和深化对Java基本概念的理解,为后续的大数据技术学习...

    我的Swift学习项目实战代码.zip

    这份名为“我的Swift学习项目实战代码.zip”的压缩包,包含了从Day 01到Day 03的学习过程中的代码实践,旨在帮助开发者逐步掌握Swift语言的基础与进阶技巧。 首先,我们从Day 01开始,这通常是学习新语言时的基础...

Global site tag (gtag.js) - Google Analytics