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
for
que adiciona, a partir de um scanner, os elementos na lista. - Declarar
q
,x
,y
ez
fora dofor
, sendo queq
também precisa ser escaneado. - Fazer um segundo
for
que recebe umaString
que pode serInsert
ouDelete
- Para a string Insert, recebemos dois ints:
x
ey
. 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)