Java ::: Tratamento de Erros ::: Erros de Tempo de Execução |
Como tratar o erro IndexOutOfBoundsException do Java - A exceção IndexOutOfBoundsException da linguagem JavaQuantidade de visualizações: 17876 vezes |
|
A exceção IndexOutOfBoundsException é uma exceção (erro) que acontece quando fornecemos um índice fora dos limites permitidos para o acesso de elementos em um vetor, matriz, string ou demais coleções. Lembre-se de que os índices em Java começam em 0 e vão até a quantidade de elementos menos 1. Antes de vermos os exemplos, observe a posição da classe pública IndexOutOfBoundsException na hierarquia de classes da plataforma Java:
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
java.lang.IndexOutOfBoundsException
Esta classe implementa a interface Serializable e possui duas sub-classes conhecidas: ArrayIndexOutOfBoundsException e StringIndexOutOfBoundsException. Veja um exemplo no qual tentamos acessar um elemento de um vetor usando um índice inválido: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
public class Estudos{
public static void main(String args[]){
// um array de quatro elementos
int[] valores = {5, 23, 76, 3};
// vamos fornecer um índice inválido
System.out.println(valores[4]);
System.exit(0);
}
}
Este código compila normalmente. Porém, ao tentarmos executá-lo, temos a seguinte mensagem de erro: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Estudos.main(Estudos.java:7) A forma mais adequada de corrigir este erro é fornecendo um valor de índice que realmente esteja na faixa permitida. Veja agora o mesmo trecho de código usando uma string: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
public class Estudos{
public static void main(String args[]){
String nome = "Java";
// vamos fornecer um índice inválido
System.out.println(nome.charAt(4));
System.exit(0);
}
}
Compile este código e execute-o. Você verá a seguinte mensagem de erro: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4 at java.lang.String.charAt(Unknown Source) at Estudos.main(Estudos.java:6) Vamos fazer o mesmo usando uma ArrayList: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
import java.util.ArrayList;
public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList<String> nomes = new ArrayList<String>();
// adiciona itens na lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");
nomes.add("Osmar");
// fornecemos um índica inválido
String nome = nomes.get(4);
System.out.println("O valor obtido foi: " + nome);
System.exit(0);
}
}
Compile, execute e veja a mensagem de erro: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 4, Size: 4 at java.util.ArrayList.RangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at Estudos.main(Estudos.java:15) Veja que no caso do vetor, a exceção lançada foi ArrayIndexOutOfBoundsException, no caso da string a exceção foi StringIndexOutOfBoundsException e no caso do ArrayList tivemos IndexOutOfBoundsException. Resolvemos abordar estas três exceções em apenas uma anotação para que você perceba a semelhança entre elas. |
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como usar a função array_unique() do PHP para remover elementos duplicados de um vetor - Removendo elementos repetidos de um array PHPQuantidade de visualizações: 18809 vezes |
Em algumas situações nossos códigos precisam remover os elementos duplicados em um array (vetor) PHP. Isso pode ser feito por meio do uso da função array_unique(). Esta função recebe um array e retorna um outro array com os elementos duplicados removidos. Veja um exemplo:----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
<?php
// vamos declarar e inicializar um vetor de inteiros
$valores = array(43, 2, 6, 11, 98, 6, 3, 6);
// vamos exibir os valores do vetor
echo "Com elementos duplicados:<br>";
foreach($valores as $valor){
echo $valor . " - ";
}
// vamos remover os elementos duplicados
$valores = array_unique($valores);
// vamos exibir os valores do vetor novamente
echo "<br><br>Sem elementos duplicados:<br>";
foreach($valores as $valor){
echo $valor . " - ";
}
?>
Ao executarmos este código teremos o seguinte resultado: Com elementos duplicados: 43 - 2 - 6 - 11 - 98 - 6 - 3 - 6 - Sem elementos duplicados: 43 - 2 - 6 - 11 - 98 - 3 - Note que a função array_unique() remove APENAS os valores dos elementos duplicados, ou seja, as chaves ou índices são mantidos. Isso pode ser visto no trecho de código a seguir: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
<?php
// vamos declarar e inicializar um vetor de inteiros
$valores = array(43, 2, 6, 11, 98, 6, 3, 6);
// vamos listar os valores dos elementos no vetor
for($i = 0; $i < count($valores); $i++){
echo $valores[$i] . " - ";
}
// vamos remover os elementos duplicados
$valores = array_unique($valores);
// vamos listar os valores no vetor novamente
echo "<br><br>";
for($i = 0; $i < count($valores); $i++){
echo $valores[$i] . " - ";
}
?>
Este código resultará em: 43 - 2 - 6 - 11 - 98 - 6 - 3 - 6 - 43 - 2 - 6 - 11 - 98 - - Note que a última iteração do laço deveria alcançar o valor 3. Em vez disso o laço imprimiu um valor não definido no índice 5. Esta dica foi escrita no PHP 5.2.10. Vamos torcer para que as versões mais recentes não apresentem este comportamento. Enquanto isso EVITE usar o laço for com vetores resultantes de uma chamada à função array_unique(). Use o laço foreach(). |
Haskell ::: Desafios e Lista de Exercícios Resolvidos ::: Haskell Básico |
Exercícios Resolvidos de Haskell - Como escrever uma função que recebe dois números inteiros e retorna a sua somaQuantidade de visualizações: 888 vezes |
|
Pergunta/Tarefa: Escreva uma função Haskell que recebe dois números inteiros e retorne a sua soma. A função deverá ser chamada a partir da função main do programa. O usuário deverá informar os dois números a serem somados. Sua saída deverá ser parecida com: Informe o primeiro número: 8 Informe o segundo número: 3 A soma dos dois números é: 11 Veja a resolução comentada deste exercício usando Haskell: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import System.IO import Text.Printf -- declaração da função somar somar :: Int->Int->Int -- definição da função somar -- recebe dois inteiros e retorna a -- soma como um inteiro somar a b = a + b -- função principal do programa main = do -- vamos desabilitar o buffer de quebra de linha hSetBuffering stdout NoBuffering -- vamos pedir para o usuário informar dois números -- inteiros putStr "Informe o primeiro número: " n1 <- readLn::IO Int putStr "Informe o segundo número: " n2 <- readLn::IO Int -- agora vamos chamar a função somar e obter -- a soma dos dois números fornecidos let soma = somar n1 n2 -- agora mostramos o resultado printf "A soma dos dois números é: %d" soma |
Java ::: Coleções (Collections) ::: HashMap |
Java HashMap - Como fornecer uma chave e obter seu valor correspondente em um HashMapQuantidade de visualizações: 9387 vezes |
O uso de um HashMap só se justifica quando podemos guardar os mapeamentos e recuperá-los de forma rápida e fácil. Para isso, a classe HashMap nos fornece o método get(). Este método recebe a chave a ser pesquisada e retorna o valor associado a ela. Veja sua assinatura:public V get(Object key) Veja um exemplo no qual usamos o método get() para retornar o valor associado à chave informada: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package arquivodecodigos;
import java.util.*;
public class Estudos{
public static void main(String[] args){
// vamos criar uma instância de HashMap
HashMap<Integer, String> clientes = new HashMap<Integer, String>();
// vamos adicionar três chaves e seus valores
clientes.put(new Integer(1), "Osmar J. Silva");
clientes.put(new Integer(2), "Salvador Miranda de Andrade");
clientes.put(new Integer(3), "Marcos da Costa Santos");
// vamos obter o valor correspondente à chave 2
String c = clientes.get(2);
// vamos exibir o resultado
if(c != null){
System.out.println("O valor para esta chave é: " + c);
}
else{
System.out.println("O HashMap não contém a chave informada.");
}
System.exit(0);
}
}
Ao executarmos este código Java nós teremos o seguinte resultado: O valor para esta chave é: Salvador Miranda de Andrade |
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Como converter uma string para letras minúsculas em JavaScript usando a função toLowerCase() do objeto String |
Você também poderá gostar das dicas e truques de programação abaixo |
|
C# - Como ordenar alfabeticamente os itens de uma ListBox do C# Windows Forms usando a propriedade Sorted |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





