zoukankan      html  css  js  c++  java
  • JAVA generic array 泛型数组

    在JAVA中是不支持泛型数组的,不能通过 Z[] array=new Z[10] 这样的方式来创建数组,而是使用反射Aarry.newInstance来创建:

    具体代码如下:

     1 public Z[][] convert2DimArray(Class<Z> type){
     2         TreeSet<X> XLabel=getXLabel();
     3         TreeSet<Y> YLabel=getYLabel();
     4         Z[][] array=(Z[][])(Array.newInstance(type,XLabel.size(),YLabel.size()));
     5         int xIdx=0;
     6         for (X x : XLabel) {
     7             int yIdx=0;
     8             for (Y y : YLabel) {
     9                 array[xIdx][yIdx]=get(x,y);
    10                 yIdx++;
    11             }
    12             xIdx++;
    13         }
    14         return array;
    15     }

    调用函数时使用:

    Double[][] twoDimArray=theArray.convert2DimArray((Double.class));

    或者使用:

    public Z[][] convert2DimArray(Class<Z[][]> type){
            TreeSet<X> XLabel=getXLabel();
            TreeSet<Y> YLabel=getYLabel();
            Z[][] array=type.cast(Array.newInstance(type.getComponentType().getComponentType(),XLabel.size(),YLabel.size()));
            int xIdx=0;
            for (X x : XLabel) {
                int yIdx=0;
                for (Y y : YLabel) {
                    array[xIdx][yIdx]=get(x,y);
                    yIdx++;
                }
                xIdx++;
            }
            return array;
        }

    调用时:

    Double[][] twoDimArray=theArray.convert2DimArray((Double[][].class));

    以上代码还可以看出Java “二维数组” 其实就是一位数组的每个元素都是一维数组。 

  • 相关阅读:
    Android Native Hook技术(一)
    Android Native Hook技术(二)
    Dalvik源码阅读笔记(一)
    Dalvik源码阅读笔记(二)
    Android反调试笔记
    /dev/mem可没那么简单
    jenkins使用邮件功能
    docker 安装 oracle
    jstack
    docker network
  • 原文地址:https://www.cnblogs.com/zztt/p/3771234.html
Copyright © 2011-2022 走看看