首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

java.lang.NullPointerException,该怎么处理

2012-04-08 
java.lang.NullPointerExceptionJava codeimport java.util.Arraysimport java.util.Scannerpublic clas

java.lang.NullPointerException

Java code
import java.util.Arrays;import java.util.Scanner;public class Test{        int m;          //背包最大容量        int n;         //商品的种类        Package[] pack ;        int f[][] ;    Test(){        Scanner scanner = new Scanner(System.in);         n = scanner.nextInt();         m = scanner.nextInt();         pack = new Package[n+1];         int[][] f=new int[n+1][m+1];             pack[0]=new Package();             pack[0].pi=0;             pack[0].qi=0;             pack[0].vi=0;//             System.out.println("qwe "+pack[0].pi);         for(int i=1;i<=n;i++)             {                 pack[i]= new Package();                 pack[i].pi=scanner.nextInt();                 pack[i].qi=scanner.nextInt();                 pack[i].vi=scanner.nextInt();             }//         System.out.println("sads");         System.out.println(knapsack(m,n));    }     public static void main(String[] args)    {        new Test();        }    public int knapsack(int m ,int n){        Arrays.sort(pack, 1, pack.length);        for(int i=1;i<=n;i++)            for(int j=1;j<=m;j++)                {                    System.out.println(i+" "+j);                if(j<=pack[i].qi)                    {                    f[i][j]=f[i-1][j];                    System.out.println("ww1");                    }                else                    {                    f[i][j]=Math.max(f[i-1][j],f[i-1][j-pack[i].pi]+pack[i].vi);                    System.out.println("ww2");                    }                }        return f[n][m];    }    }class Package implements Comparable<Package>{    int pi=0;    int qi=0;    int vi=0;    Package(int pi,int qi,int vi){        this.pi=pi;        this.qi=qi;        this.vi=vi;            }    Package(){        this.pi=0;        this.qi=0;        this.vi=0;    }    @Override    public int compareTo(Package o) {        // TODO Auto-generated method stub        return (this.qi-this.pi)-(o.qi-o.pi);    }    }


题目为 hdu3466 Proud Merchants
java代码中不知道哪里未初始化,求解
C/C++ code
程序代码课简化为:for(i=1;i<=n;++i) {    for(j=m;j>=g[i].p;--j) {     if( j>=g[i].q ) dp[j]=MAX(dp[j],dp[j-g[i].p]+g[i].v);    }   }


[解决办法]
找到原因了
Test()构造函数中int[][] f=new int[n+1][m+1];
前面的int [][]不应该再要了,否则就会覆盖类中的f数组了,造成nullpoint异常

之前傻掉了,数组越界的也不会报这个异常

热点排行