2016-04-02 28 views
0

Sorunum var, tamsayılar için arrayList öğesinin nasıl dizileceğini ve maksimum değeri nasıl bulacağımı biliyorum, ancak diziListim olduğunda bunu nasıl yapacağımı bilmiyorum Nesnelerin (dikdörtgenler) lütfen bu algoritma ile yardımcı olabilir. İşte ArrayList nesneleriyle nesneleri sınıflandırma, en büyük nesneyi bulma ve bulma (bölge alanına göre dikdörtgeni)

ive yapılan budur: programı tasarlamıştır biriyseniz

public static Rectangle largest(ArrayList <Rectangle> rectangles) { 

Rectangle max = rectangles.get(0); 
for (Rectangle temp: rectangles) { 
    if (temp.getArea() > max.getArea()) 
    max = temp; 

} 
return max; 
} 
+3

Güncel yaklaşımla ilgili sorun nedir? – silentprogrammer

+0

bu iyi çalışıyor; sıralama ile devam – gpasch

cevap

1

, sen Comparable<Rectangle>

public class Rectangle implements Comparable<Rectangle> { 
    // existing code 
    public int compareTo (Rectangle r) { 
     return Integer.compare(this.area, r.getArea()); 
    } 
} 

uygulamak Rectangle yapmak ve sonra sadece kullanabilirsiniz Collections#sort

Collections.sort(rectangles); 

Eğer java bu sürümünü kullanıyorsanız, sen senin Comparator bir lambda ifade kullanarak sort yöntemine içinde tanımlamak isteyebilirsiniz.

Collections.sort(rectangles, (rectangleOne, rectangleTwo) -> Integer.compare(rectangleOne, rectangleTwo));