2016-05-14 17 views
-2

という2つの整数フィールドxyを持つ基本クラスがあります。私はCollections.minメソッドを使用して、最小のx値を探したいと思います。ただし、Javaでは値ではなくメモリの場所が返されます。主な方法は次のとおりです。Collections.minは値の代わりにメモリ位置を返します

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

どうすればこの問題を解決できますか?

答えて

2

あなたはほとんどそれを持っていました! CollectionsメソッドはCollectionsオブジェクトを返します。つまり、そのオブジェクトに対してgetXおよびgetYメソッドを使用するだけです。

Collections.min(list, (a, b) -> a.getX().compareTo(b.getX())).getX() 
1

CoordオブジェクトのコレクションでCollections.minを呼び出しているため、返される値はCoordです。最小のx値を得るには、getX()を呼び出してください。

0

Collections.min(list, (a, b) -> Integer.compare(a.getX(), b.getX())).getX() 
にあなたの

Collections.min(list, (a, b) -> a.getX().compareTo(b.getX())) 

を変更

関連する問題