java 多线程 空指针_Java一个线程中传递数组时抛出空指针异常

在写一个排序算法演示程序

先在主窗体中的Listener中调用engine:private class StartListener implements ActionListener{

public void actionPerformed(ActionEvent e){

int[] unsort=UnsortGenerator(); //函数返回给unsort一个数组

engine.setArray(unsort);

engine.setAlgorithm(getAlgorithm());

engine.setSleepTime(jslSpeed.getValue()*50);

engine.setHistogram(histogram); //Histogram是用来画柱状图的

engine.run();

}

}

然后在Engine中:private SelectionSort selectionSort=new SelectionSort();

...

if (thread != null && thread.getState() != Thread.State.TERMINATED)

return;

thread=new Thread(selectionSort);

selectionSort.setArray(unsort);

thread.start();

在SelectionSort中:public class SelectionSort implements Runnable{

private int[] unsort;

private Histogram histogram;

private int sleepTime;

public void run(){

selectionSort();

}

public void setArray(int[] unsort){

this.unsort=unsort;

}

private void selectionSort(){

int key=0;

int count=0;

while(count

for(int i=key+1;i

if(unsort[key]>unsort[i])

key=i;

}

int temp=unsort[count];

unsort[count]=unsort[key];

unsort[key]=temp;

count++;

key=count;

for(int i=0;i

System.out.printf("%d ",unsort[i]);

System.out.print('\n');//这里可以输出正常数组

histogram.showHistogram(unsort);//这里会抛出异常

try {

Thread.sleep(sleepTime);

} catch (Exception ex) {

ex.printStackTrace();

}

}

}

}

830412a57099b7178ff5c7dca2328c31.png

请问这段代码哪里有问题?如何修改?

提前感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值