初始化队列数组
Queue[] queues = new Queue[10];
,报NullPointerException
异常的解决方案
在做基数排序的实现上,因为需要用到队列,出现了一个小的问题,在此记录一下。
首先我需要用到一个队列数组(就是多个队列啦),但是搜到的很多都是用数组实现队列…开始的时候就是初始化一个数组
,是队列的形式:
1 |
|
队列初始化后发现会报异常,
1 |
|
网上一搜还真有完全一样的问题…(一样的想实现基数排序,一样的分配大小,一样的报错….),但给到的答案是这样的,
1 |
|
但是如果直接使用的话,会报错
1 |
|
先说正确的答案
1 |
|
这里的的原因是Java是不能初始化Queue
类型的,除非网上搜到的那个答案后的Queue
是自己实现的一个类。在java.util.*
里,接口用来接收实现类,Queue
是接口,ArrayDeque
是实现类,接口不能实例化,所以是不能直接new
的,但是你可以new
它的实现类,也就是像后面的new ArrayDeque()
。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.