ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

集合框架3------泛型

2022-08-14 18:03:10  阅读:151  来源: 互联网

标签:String Demo class 泛型 ------ new 集合 public


泛型

参考视频:13.17 泛型概述哔哩哔哩bilibili

 

 

 

代码

一、1.创建Demo.java

/**
* 泛型类
* 语法 类名<T>
* T是类型占位符,表示一种引用类型,如果编写多个,使用逗号隔开
*/
public class Demo<T> {
   //1.创建变量
   T t;

   //2.作为方法的参数
   public void show(T t){
       System.out.println(t);
  }

   //3.泛型作为方法的返回值
   public T getT(){
       return t;
  }
}

2.创建Test进行测试

public class Test {
   public static void main(String[] args) {
       //使用泛型类创建对象
       Demo<String> stringDemo = new Demo<>();
       stringDemo.t = "Hello";
       stringDemo.show("大家好!!");//将字符串传入到Demo类中,输出大家好!!
       String s = stringDemo.getT();
       System.out.println(s);//输出Hello

       Demo<Integer> integerDemo = new Demo<>();
       integerDemo.t = 200;
       integerDemo.show(300);
       Integer t = integerDemo.getT();
       System.out.println(t);
  }
}
/*注意,1.泛型只能使用引用类型(Integer Long Boolean Byte Character Double Float Short)。
    2.不同的泛型对象不能相互复制
    */

二、接口实现泛型

//1.创建接口
public interface MyInterface<T> {
   String name = "张三";

   T server(T t);
}


//2.1.根据所输入的数据变化的实现类
public class MyInterfaceIneger<Integer> implements MyInterface{
   @Override
   public Object server(Object o) {
       System.out.println(o);
       return o;
  }
}
//2.2.创建定死类型的实现类,如下面的代码只能是String。
public class MyInterfaceImpl implements MyInterface<String>{

   @Override
   public String server(String s) {
       System.out.println(s);
       return s;
  }

}


//3.测试
public class Test {
   public static void main(String[] args) {
       //使用泛型类创建对象
       Demo<String> stringDemo = new Demo<>();
       
       //测试String类型接口
       MyInterfaceImpl myInterface = new MyInterfaceImpl();
       myInterface.server("努力!奋斗!");

       //测试Integer类型接口
       MyInterfaceIneger myInterfaceIneger = new MyInterfaceIneger();
       myInterfaceIneger.server(100);

三、自定义方法实现泛型

public class MyGenericsMethod {

   //自定义一个方法
   public <T> void show(T t){
       System.out.println("泛型方法:"+t);
  }
}


//测试
public class Test {
   public static void main(String[] args) {
       //使用泛型类创建对象
       Demo<String> stringDemo = new Demo<>();


       //测试泛型方法
       MyGenericsMethod myGenericsMethod = new MyGenericsMethod();
       myGenericsMethod.show("红果阿萨德飞机");//String型
       myGenericsMethod.show(200);//Integer型
       myGenericsMethod.show(3.14);//Double型
  }
}

泛型集合

 

 

import java.util.ArrayList;
import java.util.Iterator;

public class Demo2 {
   public static void main(String[] args) {
       ArrayList<Student> arrayList = new ArrayList<>();
       Student s1 = new Student("小明",11,4);
       Student s2 = new Student("小红",12,5);
       Student s3 = new Student("小李",13,6);
       arrayList.add(s1);
       arrayList.add(s2);
       arrayList.add(s3);

       Iterator<Student> iterator = arrayList.iterator();
       while (iterator.hasNext()){
           Student s = iterator.next();//此处不需要强制转换了
           System.out.println(s.toString());
      }
  }
}
 

标签:String,Demo,class,泛型,------,new,集合,public
来源: https://www.cnblogs.com/mokuiran/p/16585919.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有