Idéalement, je ne veux pas que ce soit statique ou vide. C'est la seule façon de le faire fonctionner pour le moment.Trouver la plus grande surface de divers objets Shape à partir d'une ArrayList
J'ai une superclasse Shape. Il a une méthode de area() que I @Override dans la classe Rectangle et la classe Circle. Dans ma méthode principale utilisant File IO. J'essaie de faire une méthode pour itérer à travers ma liste de formes, pour trouver la plus grande surface().
Je reçois quelques erreurs différentes lorsque j'essaie différentes choses. Quand j'essaie quelque chose comme, Forme plus grand = plus grand.get (0) .area(); J'ai une erreur disant que je ne peux pas convertir un double en forme. Je veux pouvoir obtenir une zone de ma listeList, puis la comparer à d'autres zones de cette ArrayList, et faire une méthode de tri pour trouver la plus grande et la stocker et la renvoyer. Aussi quand j'essaye de le retourner ne me laissera pas parce que ce n'est pas statique.
Mais je ne peux pas rendre mes autres méthodes statiques, cela ne fait pas partie de la conception. Voici une méthode que j'ai essayé avec un foreach, je sais que ce n'est pas correct, mais puis-je l'utiliser potentiellement? Comment puis-je l'obtenir pour stocker l'objet que je crée e sans l'écraser à chaque fois?
Si plus de code téléchargé serait utile s'il vous plaît laissez-moi savoir.
Java
public static void shapeWithLargestArea(ArrayList<Shape> shapes) {
for(Shape e: shapes) {
double largest = e.area();
if (e.area() > largest) {
largest = e.area();
}
System.out.println(largest);
} // end for each loop
} // end largest area method
Mon premier commentaire était pour .net, donc je l'ai enlevé ... mais vous pouvez mettre en œuvre https://docs.oracle.com/javase/7/docs/api /java/lang/Comparable.html, puis trier la collection de sorte que votre la mise en œuvre met la collection en ordre du plus grand au plus petit sur le tri. –