Este exercício pede para fazermos e manipularmos uma List.
O primeiro input (n) denota a quantidade de elementos dentro de um array. Depois, incluímos um a um desses elementos.
A terceira linha recebe um número (q) que guiará a quantidade de Inserts ou Deletes que faremos dentro da List.
Depois, faremos as modificações para substituir ou remover elementos do array. x denota a posição do elemento que será deletado e y denota o número de substituição que entrará em seu lugar.
De forma ilustrada:
O passo a passo é o seguinte:
- Escanear o primeiro input
- Fazer uma nova lista, sempre respeitando a boa prática de fazer mais abstrata possível. Nesse caso ficou: List<Integer> lista = new ArrayList<>();
- Fazer um forque adiciona, a partir de um scanner, os elementos na lista.
- Declarar q,x,yezfora dofor, sendo queqtambém precisa ser escaneado.
- Fazer um segundo forque recebe umaStringque pode serInsertouDelete
- Para a string Insert, recebemos dois ints: xey. Utilizamos o método .add(), que já faz a substituição.
- Caso contrário (ou seja, com Delete), recebemos apenas z. Utilizamos o método .remove(), que remove o elemento a partir do número da posição dele.
O código final fica assim, dentro da main:
        Scanner scanner = new Scanner(System.in));
        int n = scanner.nextInt();
        List<Integer> lista = new ArrayList<>();
        for (int i = 0; i < n; i++){
            lista.add(scanner.nextInt());
        }
        int q = scanner.nextInt();
        int x = 0;
        int y = 0;
        int z = 0;
        for (int j = 0; j < q; j++){
            String string = scanner.next();
            if (string.equals("Insert")){
                x = scanner.nextInt();
                y = scanner.nextInt();
                lista.add(x, y);
            } else {
                z = scanner.nextInt();
                lista.remove(z);
            }
        }
        scanner.close();
        for (int h = 0; h < lista.size(); h++){
            System.out.print(lista.get(h) + " ");
        }
=========
Referências
List : Oracle
Java Colletions: Set, list e iterator : DevMedia
============
Essa publicação faz parte de uma série de exercícios resolvidos em Java no HackerRank. Acesse a série completa:
- HackerRank #6 | Scanner e End-of-file
- HackerRank #7 | Int to String / String to Int
- HackerRank #8 | Date and Time
- HackerRank #9 | Static Initializer Block
- HackerRank #10 | Currency Formatter
- HackerRank #11 | DataTypes
- HackerRank #12 | Strings Introduction
- HackerRank #13 | Substring Comparisons
- HackerRank #14 | Abstract Class
- HackerRank #18 | BigInteger
- HackerRank #19 | Loops II
- HackerRank #20 | String Reverse
- HackerRank #23 | Instanceof keyword
- HackerRank #26 | Generics
- HackerRank #27 | 1D Array
- HackerRank #28 | Anagrams
- HackerRank #33 | Arraylist
- HackerRank #34 | Exception Handling Try / Catch
- HackerRank #36 | Exception Handling
- HackerRank #37 | List
- HackerRank #38 | SubArray
- HackerRank #40 | Java Dequeue
- HackerRank #39 | HashSet
 


 
    
Top comments (0)