泛型2

package TestCollect;

import java.util.ArrayList;
import java.util.List;

/**
 * 泛型
 * 1)传入什么类型就是什么类型
 * 2)将结果传递给函数
 */

public class TestCollection_01 {
    public static void main(String[] args) {
        // 第一个泛型对象
        MyCollection<Integer> mc = new MyCollection<Integer>();
        mc.set(112, 0);
        mc.set(55, 1);
        System.out.println(mc.get(0));
        MyCollection<String> m = new MyCollection<String>();
        System.out.println("*******************************************************");

        // 第二个泛型对象
        m.set("hello", 0);
        m.set("world", 1);
        System.out.println(m.get(0));
        System.out.println(m.get(1));

        System.out.println("****************** 泛型Arraylist *************************");
        fanType();
        System.out.println("******************** 自定义泛型  ***********************************");
        fanType2();
    }


    public static void fanType() {
        List list = new ArrayList();
        list.add("aaa");
        list.add(11);
        System.out.println(list.get(0));
        System.out.println(list.get(1));
    }

    public static void fanType2() {
        MyCollection c = new MyCollection();
        c.set(100, 0);
        c.set("hello", 1);
        System.out.println(c.get(0));
        System.out.println(c.get(1));
    }

}

class MyCollection<E> {// E:表示泛型;如果在声明的时候指定数据的类型,则传入的值必有在是这个类型,如果不传的话,则可以是任何的数据类型
    Object[] objs = new Object[5];

    // 获取数据
    public E get(int index) {// E:表示泛型;
        return (E) objs[index];
    }

    // 设置数据
    public void set(E e, int index) {// E:表示泛型;
        objs[index] = e;
    }
}

  

原文地址:https://www.cnblogs.com/leigepython/p/9958953.html