日期:2014-05-20  浏览次数:20581 次

JAVA 关于数组的一个小问题 谢谢
老号忘记密码 所以新帖没有结贴率 肯定会及时结贴的 大家放心~

问一个关于数组的输入 输出的问题, 在第一个FOR 循环下, 每次循环会得到一个X, X每次是根据变量算出来的每次不一样,并且每次的X都唯一对应一个不一样的Y 在代码里面就用 X=??? Y=???+!!!代替了, 当每次X=1的时候 就把Y值赋到数组St[]里面 然后循环结束后 在最后把St[]里面所有的内容输出出来,因为最开始 不知道数组St的长度, 初始化不知道怎么弄,一直报错,麻烦高手帮我写下 非常感谢 麻烦写的详细一点 从初始化到输出 代码如下

代码:
Java code

        String[] St={};
    St=new String[1];
        int j=0;
for (XXXXX){ 
          X=??? ;            //X是算出来的 每次不一样
          Y=???+!!! ;    //第一个FOR循环 Y每次不一样 并且对应X
          
  if    (X == 1){
        St[j]= Y;
        j++;
                }
             }

for (int k=0; k<St.length; k++){
            system.out.println(St[k]); // 输出所有的数组成员
            }





------解决方案--------------------
开始不知道数组大小,可以建立一个ArrayList,把值都add进这个ArrayList中,最后,从ArrayList转成数组即可。

例子如下:

Java code
List list = new ArrayList();
list.add("Y);
    
String[] array = (String[])list.toArray(new String[list.size()]);//array就是最后要的数组
for(int i = 0;i < array.length;i++){
    System.out.println(array[i]);
}

------解决方案--------------------
2楼基本上正确,如果能使用范型就更OK了
List<String> str = new ArrayList<String>();
....
...
for(int i = 0; i < str.size(); i++){
system.out.println(St[k]);
}
这样改过你的程序估计就差不多了。
希望能帮到你