如何修复Java中的语法问题?
嗨,我对java世界很陌生。我正在尝试用java编写一些程序。我正在使用java在线编辑器工具。下面是我编写的程序,我正在尝试运行,但在这中间我开始遇到编译问题如何修复Java中的语法问题?,java,Java,嗨,我对java世界很陌生。我正在尝试用java编写一些程序。我正在使用java在线编辑器工具。下面是我编写的程序,我正在尝试运行,但在这中间我开始遇到编译问题 import java.util.Arrays; import java.util.PriorityQueue; import java.util.Queue; public class Solution { public static void main(String[] args) { myMetho
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Queue;
public class Solution {
public static void main(String[] args) {
myMethod();
}
static void myMethod()
{
int[] arrival2 = new int[] {3, 1, 3, 5};
int[] duration2 = new int[] {3, 2, 2, 2};
int[][] events = new int[arrival2.length][2];
for (int i = 0; i < arrival2.length; i++) {
events[i] = new int[] {arrival2[i], arrival2[i] + duration2[i]};
}
Arrays.sort(events,(a,b)->(a[1]-b[1]));
Queue<int[]> minHeap = new PriorityQueue<>((a, b) -> a[1] - b[1]);
int[] first = events[0];
for (int i = 1; i < events.length; i++) {
int[] cur = events[i];
if (cur[0] < first[1])
minHeap.offer(cur);
else {
first[1] = events[i][1];
}
}
System.out.println(arrival2.length - minHeap.size());
}
}
导入java.util.array;
导入java.util.PriorityQueue;
导入java.util.Queue;
公共类解决方案{
公共静态void main(字符串[]args){
myMethod();
}
静态void方法()
{
int[]arrival2=新的int[]{3,1,3,5};
int[]duration2=新的int[]{3,2,2,2};
int[][]事件=新int[arrival2.length][2];
for(int i=0;i<2.length;i++){
事件[i]=newint[]{arrival2[i],arrival2[i]+duration2[i]};
}
sort(事件,(a,b)->(a[1]-b[1]);
Queue minHeap=new PriorityQueue((a,b)->a[1]-b[1]);
int[]first=事件[0];
for(int i=1;i
上面的代码是抛出下面的错误
Solution.java:26: error: ')' expected
Arrays.sort(events,(a,b)->(a[1]-b[1]));
^
Solution.java:26: error: illegal start of expression
Arrays.sort(events,(a,b)->(a[1]-b[1]));
^
Solution.java:26: error: ';' expected
Arrays.sort(events,(a,b)->(a[1]-b[1]));
^
Solution.java:28: error: ')' expected
Queue<int[]> minHeap = new PriorityQueue<>((a, b) -> a[1] - b[1]);
^
Solution.java:28: error: illegal start of expression
Queue<int[]> minHeap = new PriorityQueue<>((a, b) -> a[1] - b[1]);
^
Solution.java:28: error: ';' expected
Queue<int[]> minHeap = new PriorityQueue<>((a, b) -> a[1] - b[1]);
^
6 errors
应为Solution.java:26:错误:')'
sort(事件,(a,b)->(a[1]-b[1]);
^
java:26:错误:表达式的非法开始
sort(事件,(a,b)->(a[1]-b[1]);
^
java:26:错误:';'预期
sort(事件,(a,b)->(a[1]-b[1]);
^
Solution.java:28:错误:“)”应为
Queue minHeap=new PriorityQueue((a,b)->a[1]-b[1]);
^
java:28:错误:表达式的非法开始
Queue minHeap=new PriorityQueue((a,b)->a[1]-b[1]);
^
java:28:错误:';'预期
Queue minHeap=new PriorityQueue((a,b)->a[1]-b[1]);
^
6个错误
下面是屏幕截图
有人能帮我解决这个问题吗?任何帮助都将不胜感激。谢谢您的IDE似乎是一个低于8的java版本。您正在使用Java8 正如我所看到的,输出是代码的3部分,它编译得很好。 检查您的Java版本。 使用Java8版本
导入java.util.array;
导入java.util.PriorityQueue;
导入java.util.Queue;
公共类解决方案{
公共静态void main(字符串[]args){
myMethod();
}
静态void方法(){
int[]arrival2=新的int[]{3,1,3,5};
int[]duration2=新的int[]{3,2,2,2};
int[][]事件=新int[arrival2.length][2];
for(int i=0;i<2.length;i++){
事件[i]=newint[]{arrival2[i],arrival2[i]+duration2[i]};
}
sort(事件,(a,b)->(a[1]-b[1]);
Queue minHeap=new PriorityQueue((a,b)->a[1]-b[1]);
int[]first=事件[0];
for(int i=1;i
此代码已通过编译。也许您是用旧的Java版本(Java 8之前)编译的。我使用的是Java 7。好吧,您不能在Java 7中使用lambda表达式。那么我们需要使用哪个版本?Java 8或更高版本。我改为Java 8并编译了。现在我只犯了三个错误。1.Solution.java:26:error:“)”应为array.sort(事件(a,b)->(a[1]-b[1]);2.java:26:error:nota语句数组.sort(事件(a,b)->(a[1]-b[1]);3.java:26:错误:';'预期的数组。sort(事件(a,b)->(a[1]-b[1]);您正在使用的IDE。分享java配置的屏幕截图我在上面的问题中添加了屏幕截图。我正在参加黑客等级练习考试;导入java.util.PriorityQueue;导入java.util.Queue;现在查看更新的答案
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Queue;
public class Solution {
public static void main(String[] args) {
myMethod();
}
static void myMethod() {
int[] arrival2 = new int[] { 3, 1, 3, 5 };
int[] duration2 = new int[] { 3, 2, 2, 2 };
int[][] events = new int[arrival2.length][2];
for (int i = 0; i < arrival2.length; i++) {
events[i] = new int[] { arrival2[i], arrival2[i] + duration2[i] };
}
Arrays.sort(events, (a, b) -> (a[1] - b[1]));
Queue<int[]> minHeap = new PriorityQueue<>((a, b) -> a[1] - b[1]);
int[] first = events[0];
for (int i = 1; i < events.length; i++) {
int[] cur = events[i];
if (cur[0] < first[1])
minHeap.offer(cur);
else {
first[1] = events[i][1];
}
}
System.out.println(arrival2.length - minHeap.size());
}
}