Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从LinkedList获取max_Java - Fatal编程技术网

Java 从LinkedList获取max

Java 从LinkedList获取max,java,Java,我正在制作一个应用程序,用户可以通过目的地和行程长度保存行程。然后我想看看最长的是什么。所有行程都是LinkedList中的对象,行程长度为整数 我如何获得旅行长度的最大值 解决方案:最终使用节点迭代: for (Travel travel : travelList) { longest = travel.getLength(); destination = travel.getDest(); if (travel.getLength() >= longest) { destina

我正在制作一个应用程序,用户可以通过目的地和行程长度保存行程。然后我想看看最长的是什么。所有行程都是LinkedList中的对象,行程长度为整数

我如何获得旅行长度的最大值

解决方案:最终使用节点迭代:

for (Travel travel : travelList) {
longest = travel.getLength();
destination = travel.getDest();
if (travel.getLength() >= longest)
{
    destination = travel.getDest();
}
}

考虑对LinkedList的每个节点进行迭代,以找出最长的目的地。

如果您使用自己的java对象存储旅行,那么下面是指针。查看Collections.max()和Comparator以及类似的接口。

您可以利用


您需要首先为自己创建一个对象,并在调用该方法时提供比较器的实例。

您可以修改Travel类,使其实现Compariable接口,并添加类似的内容-

@Override
public int compareTo(Travel another) {
    return getLength().compareTo(another.getLength());
}
然后你可以打电话

Collections.sort(travelsList)


要使用
compareTo
method

中定义的比较标准对列表进行排序,您自己尝试过什么吗?我尝试过Collections.max(MyTravelList),但没有成功。有个错误。我猜它会对列表进行总体排序,而不仅仅是按长度排序,同时检查可比性,这些是您需要的工具。。。你自己试试,你应该能得到它。此外,这之前的文章将是有用的实际上,这将是工作。如果最高,则将节点保存在变量中。这似乎比使用比较器更容易做到。但哪一个是最好的,为什么呢?没有太大区别,请看一下Collection.max方法的源代码。它做同样的事情,需要N次迭代。也许,你会发现max方法更优雅。