集合框架——泛型

泛型:是一种约束,使其该容器只能存储指定的类型,泛型类型限定写在<>里面

例【使用泛型限定只能添加该自定义类型】:

public class Text {
   
   
    private String name;
    private Integer money;

    public Text() {
   
   
    }

    public Text(String name, Integer money) {
   
   
        this.name = name;
        this.money = money;
    }

    public String getName() {
   
   
        return name;
    }

    public void setName(String name) {
   
   
        this.name = name;
    }

    public Integer getMoney() {
   
   
        return money;
    }

    public void setMoney(Integer money) {
   
   
        this.money = money;
    }

    @Override
    public String toString() {
   
   
        return "Text{" +
                "name='" + name + '\'' +
                ", money=" + money +
                '}';
    }
}
public class CollectionsTest {
   
   
    public static void main(String[] args) {
   
   
        //创建集合对象,使用泛型限定只能添加Text文本类型
        ArrayList<Text> arrayList = new ArrayList<Text>();
        //添加文本元素
        arrayList.add(new Text("AA",66));
        arrayList.add(new Text("BB",100));
        arrayList.add(new Text("CC",88));
        arrayList.add(new Text("DD",11));

        System.out.println(arrayList);//[Text{name='AA', money=66}, Text{name='BB', money=100}, Text{name='CC', money=88}, Text{name='DD', money=11}]
    }
}

默认添加类型是Object,但使用泛型之后,如下泛型类型是Text类型,所以添加类型必须是Text类型,否则报错
在这里插入图片描述
在这里插入图片描述

例【使用泛型限定只能Integer包装类】:

在这里插入图片描述
如上泛型形式中,在Java1.7之前是前后泛型都必须要写的,当Java1.7之后,可以只写前面泛型即可奏效;不能只写后面的泛型,否则是不奏效的

谨记:泛型中的<>内只能是引用数据类型(包装类也是),不能是基本数据类型,否则编译错误

常见泛型

E:Element(元素)
在这里插入图片描述

T:Type(类型)

在这里插入图片描述
K:Key(键)
V:Value(值)

在这里插入图片描述
在这里插入图片描述

固定泛型

public class CollectionsTest {
   
   
    public static void main(String[] args) {
   
   
        //泛型——Integer【就只能添加Integer类型元素】
        ArrayList<Integer> arrayListInteger = new ArrayList();
        arrayListInteger.add(55);
        arrayListInteger.add(66);
        System.out.println(arrayListInteger);//[55, 66]

        //泛型——String【就只能添加String类型元素】
        ArrayList<String> arrayListString = new ArrayList();
        arrayListString.add("A");
        arrayListString.add("B");
        System.out.println(arrayListString);//[A, B]

        //泛型——Double【就只能添加Double类型元素】
        ArrayList<Double> arrayListDouble = new ArrayList();
        arrayListDouble.add(55.33);
        arrayListDouble.add(66.32);
        System.out.println(arrayListDouble);//[55.33, 66.32]

        //……其它限定类型
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值