在vb里:
dim a(4)
然后可以redim a(12),如过想保存原来的值的话还可以用preserve
请问在java里这些问题该怎么解决

解决方案 »

  1.   

    自己写个类,很简单的。比如:public class VariableIntArray {
    private int[] array;
    private int pos;
    public VariableIntArray(int len) {
    redim(len);
    }
    public void redim(int len) {
    array = new int[len];
    }
    public void redim(int len, boolean preserve) {
    int orgLen = length();
    int[] temp = array;
    redim(len);
    System.arraycopy(temp, 0, array, 0, len > orgLen ? orgLen : len);
    }
    public void add(int i) {
    array[pos++] = i;
    }
    public int length() {
    return array.length;
    }
    public String toString() {
    StringBuffer sb = new StringBuffer("[");
    for(int i = 0; i < array.length; i++) {
    if(i > 0) sb.append(", ");
    sb.append(array[i]);
    }
    sb.append("]");
    return sb.toString();
    }

    //testing it
    public static void main(String[] args) {
    VariableIntArray via = new VariableIntArray(10);
    for(int i = 0; i < via.length(); i++)
    via.add(i);
    System.out.println(via);
    //[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    via.redim(20, true);
    System.out.println(via);
    //[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    via.redim(10);
    System.out.println(via);
    //[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    }
    }
      

  2.   

    另外一种方法:使用Arrays.asList( a ) 转变成List;
    然后随便的添加数据;
    然后通过List.asArray()转变回Array。