我有一个名为Coord
的基本类,其中包含两个整数字段x
和y
。我想使用Collections.min
方法查找最小的x
值。但是,java返回内存位置而不是值。主要方法如下:
import java.util.*;
public class Test
{
public static void main(String[] args)
{
List<Coord> list = new ArrayList<>();
list.add(new Coord(10, 12));
list.add(new Coord(8, 4));
list.add(new Coord(15, 22));
list.add(new Coord(9, 11));
list.add(new Coord(56, 7));
list.add(new Coord(3, 14));
list.add(new Coord(23, 7));
System.out.println(
Collections.min(list, (a, b) -> a.getX().compareTo(b.getX()))
);
}
}
我该如何解决这个问题?
答案 0 :(得分:2)
你几乎拥有它! Collections
个方法返回Collections
个对象,这意味着您只需要在该对象上使用getX
和getY
方法。
Collections.min(list, (a, b) -> a.getX().compareTo(b.getX())).getX()
答案 1 :(得分:1)
因为您在Collections.min
个对象的集合上调用Coord
,所返回的值为Coord
。在其上调用getX()
以获得最小的x值。
答案 2 :(得分:0)
更改您的
Collections.min(list, (a, b) -> a.getX().compareTo(b.getX()))
进入
Collections.min(list, (a, b) -> Integer.compare(a.getX(), b.getX())).getX()