Java进程排序报错:comparing(int)无适配方法,FSFS调度场景求解
进程排序代码错误修复方法
原代码报错error: no suitable method found for comparing(int),原因是Comparator.comparing()需要接收一个函数式接口(用于从集合元素中提取比较键值),直接写cpu.arrivalTime的方式不符合参数要求。
下面是两种可行的修改方案:
方案一:使用Lambda表达式
明确指定从每个进程对象中提取arrivalTime字段:// 若arrivalTime是public字段 Collections.sort(cpu, Comparator.comparing(process -> process.arrivalTime)); // 若arrivalTime是private字段,通过getter方法获取 Collections.sort(cpu, Comparator.comparing(process -> process.getArrivalTime()));方案二:使用方法引用(推荐)
如果你的进程类(假设类名为Process)有对应的getter方法(如getArrivalTime()),可以用更简洁的方法引用写法:Collections.sort(cpu, Comparator.comparing(Process::getArrivalTime));
注意:替换代码中的Process为你实际使用的进程类名称即可。
内容的提问来源于stack exchange,提问作者Payton
相关产品推荐
相关产品推荐

