package p20_zbieranie_danych;

import java.util.*;

// Listy:
// - mogą zawierać duplikaty (tę wartość kilka razy),
// - przechowują elementy na określonych pozycjach od 0 do size-1,
//   za pomocą get(i) można odczytać, a za pomocą set(i, nowaWartosc) zmienić konkretny element listy
public class ZbieranieDanych2_Lista {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        List<String> lista = new ArrayList<>();
        System.out.println("Aby zakończyć pobieranie danych, wpisz pusty napis");
        for(int i = 0; ; i++) {
            System.out.print("Podaj wartość nr " + i + ": ");
            String s = scanner.nextLine();
            if(s.isEmpty()) break;
            lista.add(s);
        }
        System.out.println(lista);

        // Listę da się posortować
        // Collections.sort(lista);
        lista.sort(null);
        System.out.println(lista);
        System.out.println();

        System.out.println("Podawaj numery pozycji, aby je odczytać, a -1 aby zakończyć program.");
        while(true) {
            System.out.print("Podaj numer: ");
            int nr = scanner.nextInt();
            if(nr < 0) break;
            if(nr >= lista.size()) {
                System.out.println("Numer poza listą");
                continue;
            }
            System.out.println("Na pozycji nr " + nr + " jest " + lista.get(nr));
        }
    }
}
