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