Przejście z listy na kolekcje

0

Mam metodę wypisującą datę, gdzie będą największe opady.

public void maxOpadow(){

int max = opady.get(0).opady;

for(int i=1;i<opady.size;i++)
   if(opady.get(i).opady > max)
         max=opady.get(i).opady;

for(Opady o : opady)
    if(o.opady==max)
        System.out.println(o.data);

}

To jest metoda oparta o arraylistę, biorę pierwszy element i porównuję.
Teraz mam takie pytanie, jak tą metodę przerobić, żeby funkcjonowała w kolekcji?

I drugie pytanie jak stworzyć metodę, która zapisze mi do pliku dane o pogodzie:

Chcę stworzyć plik pogoda.txt, gdzie pogodę będe zapisywał w ten sposób:

Data Miejsce Wielkość opadu
Data Miejsce Wielkość opadu
Data Miejsce Wielkość opadu
itd ...

0

Ad 1)
Opady max = opady.iterator().next();
for (Opady o : opady)
if (o.opady > max.opady)
max = o;
System.out.println(o.data);

Ad 2)
Skorzystaj np z PrintWriter/ PrintStream z konstruktorem (OutputStream). Mają funkcję printf. Ewentualnie klasa Formatter lub jakieś tam inne które ci spasują. Zależy od architektury twojej aplikacji.

0

AD 1)
W parametrze metody zamiast konkretnej klasy daj interfejs Collection lub lepiej Iterable
http://download.oracle.com/javase/6/docs/api/java/lang/Iterable.html

Treść metody może być taka, jaką podał Wibowit zakładając, że jest co najmniej jeden opad.

public void maxOpadow(Iterable<Opady> opady){
 Opady max = opady.iterator().next();
 for (Opady o : opady)
  if (o.opady > max.opady)
    max = o;
 System.out.println(o.data);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1