JAVA泛型-泛型类的使用案例

1.案例介绍

模拟一个抽奖的操作:
可以有不同的奖池,通过泛型传递进去。
有一个抽奖的方法,随机返回一个被抽中的奖品。

2.代码实现

2.1 泛型类

import java.util.ArrayList;
import java.util.Random;

/**
 * author : northcastle
 * createTime:2021/10/21
 * 模拟一个抽奖类 : 奖品的类型通过泛型传递进来
 */
public class Luck<T> {

    private ArrayList<T> products; // 奖池,奖品类型通过泛型传递进来

    public Luck() {
    }

    public Luck(ArrayList<T> products) {
        this.products = products;
    }

    public ArrayList<T> getProducts() {
        return products;
    }

    public void setProducts(ArrayList<T> products) {
        this.products = products;
    }

    // 抽奖的方法:随机返回一个奖品
    public T getProduct(){
        Random random = new Random();
        return products.get(random.nextInt(products.size()));
    }
}

2.2 测试代码

import java.util.ArrayList;

/**
 * author : northcastle
 * createTime:2021/10/21
 */
public class LuckApplication {
    public static void main(String[] args) {
        //1.第一种奖品 : 奖金
        Luck<Integer> integerLuck = new Luck<>();
        ArrayList<Integer> money = new ArrayList<>();
        money.add(1000);
        money.add(2000);
        money.add(3000);
        money.add(4000);
        money.add(5000);
        integerLuck.setProducts(money);
        for (int i = 0; i < 5; i++) {
            System.out.println("第 "+i+" 次抽奖结果 : "+integerLuck.getProduct());
        }

        System.out.println("============");

        //2.第二种奖品 : 电子产品
        Luck<String> stringLuck = new Luck<>();
        ArrayList<String> elec = new ArrayList<>();
        elec.add("Iphone 13");
        elec.add("Hua Wei MetaBook14");
        elec.add("xiaomi10");
        elec.add("平板电脑");
        elec.add("苹果笔记本电脑");
        stringLuck.setProducts(elec);
        for (int i = 0; i < 5; i++) {
            System.out.println("第 "+i+" 次抽奖结果 : "+stringLuck.getProduct());
        }
    }
}

2.3 运行结果

第 0 次抽奖结果 : 2000
第 1 次抽奖结果 : 3000
第 2 次抽奖结果 : 5000
第 3 次抽奖结果 : 5000
第 4 次抽奖结果 : 2000
============
第 0 次抽奖结果 : 平板电脑
第 1 次抽奖结果 : Hua Wei MetaBook14
第 2 次抽奖结果 : 苹果笔记本电脑
第 3 次抽奖结果 : Hua Wei MetaBook14
第 4 次抽奖结果 : xiaomi10

3.完成

Congratulations!
You are one step closer to success!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值