Java学习笔记 关于泛型的小小感悟

  • Post author:
  • Post category:java

Java小白 如有错误之处恳请大佬即时指正~
昨天遇到这么一道练习题:
/*
定义一个大集合存入20个随机数字 筛选其中的偶数元素 存入小集合
使用自定义方法筛选偶数
*/
题目不难 但是写的时候遇到了Object—>int 转化的小小问题
不知道 有没有同学由有同样的经历 下面是正确无误的程序

    public static void main(String[] args) {
        //1 定一个大集合
        ArrayList<Integer> list = new ArrayList<>();

        //2 random得到20个随机数字  存入大集合
        Random r = new Random();
        for (int i = 0;i < 20;i++) {
            int num = r.nextInt(33) + 1;
            list.add(num);
        }
        System.out.println("完整大列表:" + list);//输出大列表
        System.out.println("挑选过后的偶数列表:" + evenList);//输出偶数列表
    }
    //3 自定义一个方法 筛选偶数 返回偶数列表
    public static ArrayList<Integer> selectEven(ArrayList<Integer> list){
        ArrayList<Integer> evenlist = new ArrayList<>();
        for (int i = 0;i < list.size();i++){
            int num = list.get(i);

            if (num %2 == 0){//判断是否是偶数
                evenlist.add(num);
            }
        }
        return evenlist;
    }
    /*输出结果如下 random每次随机生成数字 结果可能不同
完整大列表:[3, 4, 2, 26, 1, 17, 14, 15, 24, 26, 28, 33, 12, 11, 28, 4, 15, 23, 22, 28]
挑选过后的偶数列表:[4, 2, 26, 14, 24, 26, 28, 12, 28, 4, 22, 28]
*/

然而 我第一次写的时候 筛选偶数的方法没有使用泛型传参 遇到了Object—>int 转化的小小问题
在这里插入图片描述
后来翻看了泛型的东西
发现把参数类型改成ArrayList一切迎刃而解~~
不需要麻烦到将Object—>String—>int (●’◡’●)
这是因为泛型的其中一个作用

消除强制类型转换:
泛型的一个附带好处是,消除源代码中的许多强制类型转换。
使得代码更加可读,并且减少了出错机会

我的理解是:泛型的引用自动进行了类型转换 不需要码农们操心啦 减少代码出错~

小白一枚 不足之处请多指教啦(●ˇ∀ˇ●)看完有用请给我点赞好吗!


版权声明:本文为li12345677原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。