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 “二维数组” 其实就是一位数组的每个元素都是一维数组。 

  • 相关阅读:
    asy for
    asy html !
    lib
    git clone 指定 version tag
    git tag
    git clone <url>--depth 、 git clone <url> --recursive
    xelatex CLI
    rsync
    curl options
    [转自]C语言offset_of宏和container_of宏
  • 原文地址:https://www.cnblogs.com/zztt/p/3771234.html
Copyright © 2011-2022 走看看