首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

excuse me -2 请教怎么动态生成数组,java不会没有方法实现吧

2012-03-21 
excuse me -2 请问如何动态生成数组,java不会没有方法实现吧?这个和excuseme一样,犯java.lang.NullPointer

excuse me -2 请问如何动态生成数组,java不会没有方法实现吧?
这个和excuse   me   一样,犯java.lang.NullPointerException

import   java.io.*;
public   class   two_eight   {
public   static   void   main     (String[]   args)
{
int   list[]=null;
list=get();
for(int   i=0;i <list.length;i++){
System.out.print(list[i]);
}

}
static   int   Search(int   a[],int   i,int   left,int   right)
{
while(left <right)
{
int   middle   =   (left+right)/2;
if(middle==a[middle])return   middle;
else   if(middle> a[middle])left=middle+1;
else     right=middle-1;
}
return   -1;
}

static   int[]   get()
{
    int[]       array=null;      
                    /*System.out.println( "Please       enter       num   ");    
                    BufferedReader       stdin=new       BufferedReader(new       InputStreamReader(System.in));      
                    int   n   =   -1;
                 
try   {
n   =   Integer.parseInt(stdin.readLine());
}   catch   (NumberFormatException   e)   {
e.printStackTrace();
}   catch   (IOException   e)   {

e.printStackTrace();
}     */


                    for(int       i=0;i <3;i++)      
                    {      
                   
                    BufferedReader   stdin=new       BufferedReader(new       InputStreamReader(System.in));      
                    try   {
array[i]       =   (int)Integer.parseInt(stdin.readLine());
}   catch   (NumberFormatException   e)   {

e.printStackTrace();
}   catch   (IOException   e)   {

e.printStackTrace();
}      
                    }          
                    return   array;
                 
}
}


[解决办法]
....动态数组用容器

或者看看这个动态扩展数组的方法..
public static Object arrayGrows(Object oldArray) {
Class cl = oldArray.getClass();
if(!cl.isArray()) return null;
Class componentType = cl.getComponentType();
int length = Array.getLength(oldArray);
int newLength = length * 11/10 + 10;
Object newArray = Array.newInstance(componentType, newLength);
System.arraycopy(oldArray, 0, newArray, 0, length);
return newArray;
}
------解决方案--------------------


应该可以吧.
[解决办法]
在for(int i=0;i <3;i++)之前,请先给数组申请内存,即array = new int[3]
你一开始int[] array=null; ,array还是null,
就调用array[i] = (int)Integer.parseInt(stdin.readLine());
当然就出NullPointerException了
请LZ写程序细心一点,不要总犯小错误

热点排行
Bad Request.