首页 > 其他分享 >集合框架3------泛型

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

时间:2022-08-14 18:03:00浏览次数:77  
标签: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
From: https://www.cnblogs.com/mokuiran/p/16585919.html

相关文章

  • Symbol类型的学习小结
    symbolES6新增的一种原始类型,类似于字符串,表示独一无二的值(永不重复)因为是基本类型所以不能用new关键字来调用,当然也不能添加属性最佳实践:为了保证对象的属性名保持唯一......
  • NC17193 简单瞎搞题
    题目链接题目题目描述一共有n个数,第i个数是xixi可以取[li,ri]中任意的一个值。设\(S=\sum{{x_i}^2}\),求S种类数。输入描述第一行一个数n。然后n......
  • c#中try、catch、finally用法总结
    1、try和catch两者是不可分开的,如果try里面抛出了异常,catch就会捕捉到这个异常,执行catch内的代码。其中Exception是指的错误类型。2、finally代码块用于代码后面,不管你前......
  • 每五秒获取调取告警接口
     //告警数量 constgetAlarm=()=>{  getAlarmCount().then(   (res:any)=>{    if(res.code==200){     setCount(res......
  • KubectlKubectl命令
     在清华大学出版社出版的<<Kubernetes零基础快速入门>>一书上看到了总结的Kubectl命令,觉得很不错,比较全,包括有命令的含义以及常见的资源对象,所以分享一下。 常用子......
  • map和解构
    Map:<script>//创建map的两种方式varmap1=newMap;//无参,空的mapconsole.log(map1);//Map(0) {size:0}vararr=[[1,2],......
  • 反向传播
    直觉上:根据模型计算的预测值和批样本测量值之间的误差平方和,去反向调整神经网络中的权重。5分钟-通俗易懂-神经网络反向传播算法(手算)_哔哩哔哩_bilibili   ......
  • week03-day05练习
    <script>//1,使用reduce求数组中所有元素的乘积,//vararr=[2,3,4,5,6,7]vararr01=[2,3,4,5,6,7];varresult=arr01......
  • 驻留机制的几种情况(交互模式)
    字符串的长度为0或1时a=''b=''c='1'd='1'print(aisb)print(cisd)符合标识符的字符串a='abc%'b='abc%'c='abc'd='abc'print(aisb)print(cisd)......
  • Affinity Publisher for Mac(桌面排版神器)中文版
     AffinityPublisherformac可以进行专业的排版工作,支持图文混排、首字下沉、插入表格、从母版创建页面等常用的排版功能。AffinityPublisherforMac软件介绍流畅出......