class Solution{
// temp: input array
// n: size of array
//Function to rearrange the array elements alternately.
public static void rearrange(long arr[], int n){
PriorityQueue<Long>pq=new PriorityQueue<>();
PriorityQueue<Long>pqrev=new PriorityQueue<Long>(Collections.reverseOrder());
for(long i:arr){
pq.offer(i);
pqrev.offer(i);
}
int i=0;
while(i<n && !pq.isEmpty() && !pqrev.isEmpty()){
pq.remove(pqrev.peek());
arr[i++]=pqrev.poll();
pqrev.remove(pq.peek());
arr[i++]=pq.poll();
}
}
}
我使用此代码将Long值存储在优先级队列中,但这是在线程mainjava.lang.NullPointerException at Solution.rearrange(File.java:71)at Main.main(File.java:35)中作为Exception输出
我已经将arr中的长值插入到PriorityQueues中,但仍然得到NullPointerException。
逻辑似乎有问题,而不是数据类型。您正在此处检查队列中是否有空队列
while(i<n && !pq.isEmpty() && !pqrev.isEmpty())
并在每个队列上使用两种方法(删除
和轮询
),因此您基本上检查一次null并删除两次。
目前您只剩下一个元素,您将获得NullPointerException
用于下一个操作。
正如评论中所提到的,您有一个逻辑问题。在while循环中,您正在轮询队列中的数据,而不检查队列中是否有剩余值
由于没有轮询值,因此pq。轮询重新调整null,然后尝试删除导致空指针异常的null(不长)<在执行任何操作之前,请检查队列是否为空
例如:
if(pq.peek()!=null) {
pqrev.remove(pq.peek());
arr[i++]=pq.poll();
}
本文向大家介绍如何在MySQL ENUM数据类型中插入默认值?,包括了如何在MySQL ENUM数据类型中插入默认值?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助ENUM数据类型的DEFAULT属性来实现。如果未指定值,则DEFAULT属性会使ENUM数据类型具有默认值。换句话说,我们可以说INSERT语句不必为此字段包含值,因为如果不包含该值,那么将插入DEFAULT之后的值。DEFA
我想发出一个将数据插入数据库的请求。该表有4列:ID_DOCUMENT(PK)、ID_TASK、DESCRIPTION、FILEPATH 当我运行我的测试时,我得到了这个错误:由:org.hibernate.hql.ast.querysyntaxException引起的:预期打开,在第1行第32列附近发现'c'[insert into TaskDocumentEntity c(c.IDTask,c
我有两个表和一个表来映射我以前的两个表的关系,我如何使用Spring data JPA高效自动地将数据插入到映射的表中?下面是表结构。 用户(id(PK),名称,电子邮件,userRoleId)角色(id(PK),名称,userRoleId)用户角色(id(PK),userId(FK<-User),roleId(FK<-Role))
注意:在MySQL表中,此列的数据类型我选择了日期数据类型 我只是有问题的日期部分查询插入日期:
当前,我有一个数组,当通过print_r()输出时,该数组如下所示; 我想将此数据插入到一个表中,每个元素值都属于其各自的字段。 问候。
问题内容: 我想使用Web服务在远程Web服务器上的MYSQL数据库中插入文件。 我的问题是:什么类型的表列(例如varchar等)将存储文件?对于文件,insert语句会有所不同吗? 问题答案: BLOB数据类型最适合存储文件。 请参阅:如何使用PHP将.pdf文件作为BLOB存储到MySQL中? MySQL BLOB参考手册有一些有趣的注释