我制作了以下代码,我看到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((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);
}
}
答案 0 :(得分:2)
您忘记了import java.util.Collections;
修复您的代码
避免使用sort
方法,因为它运行的复杂度更低(O(nlogn)
)并改变列表本身。
答案 1 :(得分:1)
您可以对列表进行排序,并将元素设置为0和size-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;