Uputstvo
Podatke čitaj sa nextLine(), a godinu pretvori sa Integer.parseInt (tako izbegavaš problem sa ostatkom reda posle nextInt()). Pronađene knjige skupi u novu listu i sortiraj je sa Comparator.comparingInt(k -> k.godina).
Rešenje (Java)
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
class Knjiga {
String naslov, autor;
int godina;
Knjiga(String naslov, String autor, int godina) {
this.naslov = naslov;
this.autor = autor;
this.godina = godina;
}
}
public class Biblioteka {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.nextLine().trim());
ArrayList<Knjiga> knjige = new ArrayList<>();
for (int i = 0; i < n; i++) {
String naslov = sc.nextLine();
String autor = sc.nextLine();
int godina = Integer.parseInt(sc.nextLine().trim());
knjige.add(new Knjiga(naslov, autor, godina));
}
String trazeni = sc.nextLine();
ArrayList<Knjiga> nadjene = new ArrayList<>();
for (Knjiga k : knjige) {
if (k.autor.equalsIgnoreCase(trazeni)) nadjene.add(k);
}
nadjene.sort(Comparator.comparingInt(k -> k.godina)); // po godini, rastuće
if (nadjene.isEmpty()) System.out.println("Nema knjiga");
for (Knjiga k : nadjene) System.out.println(k.godina + " " + k.naslov);
}
}