Java 获取链接列表中的最小值和最大值
我编写了以下代码,我看到了Collection.max(list)是一种在链表中查找max的方法。但是,它不能识别集合部分。如何正确使用它Java 获取链接列表中的最小值和最大值,java,list,Java,List,我编写了以下代码,我看到了Collection.max(list)是一种在链表中查找max的方法。但是,它不能识别集合部分。如何正确使用它 import java.util.LinkedList; public class linkedlist { public static void main (String args[]) { LinkedList<Integer> fl = new LinkedList<Integer>(); fl.add((
import java.util.LinkedList;
public class linkedlist {
public static void main (String args[]) {
LinkedList<Integer> fl = new LinkedList<Integer>();
fl.add((int)(Math.random() * (19) + 1));
fl.add((int)(Math.random() * (19) + 1));
fl.add((int)(Math.random() * (19) + 1));
fl.add((int)(Math.random() * (19) + 1));
fl.add((int)(Math.random() * (19) + 1));
fl.add((int)(Math.random() * (19) + 1));
fl.add((int)(Math.random() * (19) + 1));
fl.add((int)(Math.random() * (19) + 1));
fl.add((int)(Math.random() * (19) + 1));
fl.add((int)(Math.random() * (19) + 1));
System.out.println(fl);
int max = Collections.max(fl);
}
}
import java.util.LinkedList;
公共类链接列表{
公共静态void main(字符串参数[]){
LinkedList fl=新建LinkedList();
fl.add((int)(Math.random()*(19)+1));
fl.add((int)(Math.random()*(19)+1));
fl.add((int)(Math.random()*(19)+1));
fl.add((int)(Math.random()*(19)+1));
fl.add((int)(Math.random()*(19)+1));
fl.add((int)(Math.random()*(19)+1));
fl.add((int)(Math.random()*(19)+1));
fl.add((int)(Math.random()*(19)+1));
fl.add((int)(Math.random()*(19)+1));
fl.add((int)(Math.random()*(19)+1));
系统输出打印LN(fl);
int max=Collections.max(fl);
}
}
您可以对列表进行排序,并获得0和大小为1的元素
Collections.sort(fl);
System.out.println(fl);
System.out.println(fl.get(0));
System.out.println(fl.get(fl.size() - 1));
但是,如果您不想对列表进行排序,并且希望保持插入顺序,请执行以下操作
int max = Collections.max(fl);
Collections.sort(fl);
System.out.println(max);
int min = Collections.min(fl);
别忘了导入java.util.Collections 您忘记导入java.util.Collections代码>这将修复您的代码。
避免使用
sort
方法,因为它运行的复杂性更高(O(nlogn)
),并且会改变列表本身。尝试此方法时发生了什么?它无法识别集合。max(fl);您的示例没有显示对集合的导入。这将更改列表,而我们只想从中提取一个值。不需要改变它。