泛型数组

泛型数组的创建

  1. 可以声明带泛型的数组引用,但是不能直接创建带泛型的数组对象
  2. 可以通过java.lang.reflect.Array的newInstance(Class,int)创建T[]数组

1

  • 泛型数组不能作为对象
  • 数组下的列表的数据类型必须与数组一样
public class Demo01 {
    public static void main(String[] args) {

        //泛型数组
        //  = new ArrayList<String>[5];这是错的,泛型数组不能作为对象
        ArrayList<String>[] arrList = new ArrayList[5];
        ArrayList<String> list = new ArrayList<>();
        //数组下的列表的类型必须与数组一直,不能改integer
        ArrayList<String> intl = new ArrayList<>();
        list.add("a");
        list.add("b");
        intl.add("1");
        intl.add("2");
        arrList[0] = list;
        arrList[1] = intl;
        String l = arrList[0].get(0);
        for (ArrayList<String> strings : arrList) {
            System.out.println(strings);
        }
        System.out.println(l);
        System.out.println("-----------------------------------------------------------");
        Demo02<String> A = new Demo02<>(String.class, 3);
        A.put(0, "a");
        A.put(1, "b");
        A.put(2, "c");
        System.out.println(A.get(2));
        System.out.println(Arrays.toString(A.getArray()));
    }
}

2

  • 可以通过java.lang.reflect.Array的newInstance(Class,int)创建T[]数组
public class Demo02<T> {
    private T[] Arr;
//构造器
    public  Demo02(Class<T> clz, int length){
        //通过Array.newInstance创建泛型数组
        Arr = (T[]) Array.newInstance(clz,length);
    }

    /**
     * 填充数组
     * @param index  标识
     * @param item  值
     */
    public void put (int index,T item){
    Arr[index]=item;
    }
    public T get(int index){
        return  Arr[index];
    }
    public T[] getArray(){
        return Arr;
    }
}
posted @   小幼虫虫  阅读(478)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示