获取链接列表中的最小值和最大值

时间:2016-03-06 18:47:20

标签: 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((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);
   }
}

2 个答案:

答案 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;