zoukankan      html  css  js  c++  java
  • jdk5.0泛型

    泛型

    泛型的应用场景

    泛型一般使用在集合上,使用了泛型的集合,这集合的所装载的元素类型就会确定下来;就好比缸是个集合,为了让这个缸只能装米, 就给这口缸贴上一个【米】,不允许这口缸来装其他的东西。我们有个List集合想让他只能放String类型元素,我们就给这个List添加String泛型,例如:List<String>

    不使用泛型时的遇到的问题

    public class YouXin01 {
        public static void main(String[] args) {
            List list = new ArrayList();
            list.add(new A());
            list.add(new B());
            // 取出的是Object对象,不能调用A对象里的方法
            System.out.println(list.get(0));
        }
    }
    class A {
        public void test() {
            System.out.println("这是A");
        }
    }
    class B {
        public void test() {
            System.out.println("这是B");
        }
    }

    使用泛型情况

    List<A> list = new ArrayList<A>();
    list.add(new A());
    list.get(0).test();                     //这时就可以调用了

    泛型注意的地方

    泛型里面写的是一个对象,不能写基本的数据类型,比如int要使用Integer。

    泛型的使用

    泛型使用在方法上

    public class YouXin02 {
        public static void main(String[] args) {
            Integer[] arr3 = {10, 11, 12, 13, 14};
            swap(arr3, 1, 3);
            System.out.println(Arrays.toString(arr3));
            //结果: 10, 13, 12, 11, 14
        }
    
        /**
         * 使用泛型方法
         * 需要定义一个类型使用大写字母表示T: 这个T表示任意的类型
         * 写在返回值之前
         * ======表示定义了一个类型,这个类型是T
         * 那这样在方法里就可以使用这个类型T了
         */
        public static <T> void swap(T[] arr,int a,int b) {
       T temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } }

    泛型在类上的使用

    public class YouXin03<T> { //直接在类名后定义 T aa; //在类里面可以直接使用T的类型 public void test11(T bb) {} //使用泛型类 /* * 注意: 这是错的,静态方法里是不能使用泛型的 * 在类上面定义的泛型,不能在静态方法里面使用 */ //public static void test12(T cc) {} }

  • 相关阅读:
    HDU 1010 Tempter of the Bone(DFS剪枝)
    HDU 1013 Digital Roots(九余数定理)
    HDU 2680 Choose the best route(反向建图最短路)
    HDU 1596 find the safest road(最短路)
    HDU 2072 单词数
    HDU 3790 最短路径问题 (dijkstra)
    HDU 1018 Big Number
    HDU 1042 N!
    NYOJ 117 求逆序数 (树状数组)
    20.QT文本文件读写
  • 原文地址:https://www.cnblogs.com/paoge/p/13571215.html
Copyright © 2011-2022 走看看