小白学习java集合框架(泛型)

希望各位能够留下你们美丽的赞和评论谢谢,或者有好的资源帮帮小编提升实力一起努力,奥里给!!
拒绝垃圾视频:超级好的视频,建议从头开始看:https://www.bilibili.com/video/BV16K4y1x7Gi?p=42

泛型

一、泛型概念

概念:把类型作为参数传递。(泛型类、泛型接口、泛型方法)
好处:
(1)提高代码重用性
(2)防止类型转换异常,提高代码的安全性

二、泛型类、接口、方法

2.1泛型类

注意:
1、泛型只能使用引用类型。
2、不同泛型对象之间不能相互赋值。

代码示例:

泛型类FanXingDemo1

package cn.itcast.study;


/**
 * 泛型类
 * 语法:类名<T>
 * T表示占位符,表示引用类型,如果多个用逗号隔开
 * @author 11218
 *
 */
public class FanXingDemo1<T> {
	//使用泛型T
	//创建变量
	T t;
	
	//添加方法
	public void show(T t) {
		System.out.println(t);
	}
	//使用泛型作为返回值
	public T getT() {
		return t;
	}

}

泛型测试类FanXingTest1

package cn.itcast.study;


public class FanXingTest1 {
	public static void main(String[] args) {
		//使用泛型类创建对象
		//注意1泛型只能使用引用类型2不同泛型对象之间不能相互赋值
		FanXingDemo1<String> fanXingDemo1=new FanXingDemo1<String>();
		fanXingDemo1.t="hello";
		fanXingDemo1.show("大家好");
		String string=fanXingDemo1.getT();
		System.out.println(fanXingDemo1.t);
		System.out.println(string);
		
		FanXingDemo1<Integer> fanXingDemo2=new FanXingDemo1<Integer>();
		fanXingDemo2.t=100;
		fanXingDemo2.show(200);
		Integer integer=fanXingDemo2.getT();
		System.out.println(fanXingDemo2.t);
		System.out.println(integer);
	}
}

2.2 泛型接口

注意:
1.泛型接口的实现类创建后要么固定泛型,要么还是泛型。

泛型接口

package cn.itcast.study;

/**
 * 泛型接口
 * 语法:接口名<T>
 * 注意:泛型不能泛型静态常量
 * @author 11218
 *
 */
public interface FanXingDemo2<T> {
	String name="张三";
	
	T server(T t);
}

第一种固定泛型

package cn.itcast.study;

public class FanXingImpl implements FanXingDemo2<String>{

	//实现接口时要把泛型固定
	@Override
	public String server(String t) {
		System.out.println(t);
		return null;
	}

}

测试代码

FanXingImpl impl = new FanXingImpl();
		impl.server("加油吧少年!!!");

第二种泛型化

package cn.itcast.study;

public class FanXingImpl2<T> implements FanXingDemo2<T>{

	@Override
	public T server(T t) {
		System.out.println(t);
		return t;
	}

}

测试代码

FanXingImpl2<Integer> fanXingImpl2 = new FanXingImpl2<Integer>();
		fanXingImpl2.server(2);

2.3 泛型方法

注意:泛型方法的运用只要将传入的参数直接放进去就可以无需固定。

示例代码:
泛型方法FanXingDemo3

package cn.itcast.study;

/**
 * 泛型方法
 * 语法:<T> 返回值类型
 * @author 11218
 *
 */
public class FanXingDemo3 {
	
	//泛型方法
	public <T> T show(T t) {
		System.out.println("泛型方法"+t);
		return t;
	}
}

测试

FanXingDemo3 fanXingDemo3 = new FanXingDemo3();
		fanXingDemo3.show("中国加油!");

2.4 泛型集合

重点:泛型集合,集合泛型被固定,那么会被约束,所固定的引用就是界定,两个不同固定的约束集合不能相互赋值,同时在编代码时还会自动排错,赋值非此类型在编译阶段会报错,提示代码编写人员。

实例代码:

package cn.itcast.study;

import java.util.ArrayList;

//泛型集合
public class FanXingDemo4 {
	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<String>();
		list.add("你好");
		list.add("加油吧!");
		
		ArrayList<Integer> list2 = new ArrayList<Integer>();
		list2.add(1);
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值