集合框架3------泛型
参考视频:
代码
一、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{
三、自定义方法实现泛型
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());
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~