Em Java, as estruturas de dados homogêneas são usadas para armazenar vários elementos do mesmo tipo. Elas são comumente implementadas usando arrays, que podem ser unidimensionais (vetores) ou bidimensionais (matrizes).
Um vetor é uma lista linear de elementos, todos do mesmo tipo, acessados por um índice.
// Declaração de um vetor de inteiros
int[] vetor;
// Alocação de memória para 5 elementos
vetor = new int[5];
// Inicialização
vetor[0] = 10;
vetor[1] = 20;
vetor[2] = 30;
vetor[3] = 40;
vetor[4] = 50;
// Declaração e inicialização em uma linha
int[] vetor2 = {1, 2, 3, 4, 5};
System.out.println(vetor[0]); // Saída: 10
for (int i = 0; i < vetor.length; i++) {
System.out.println(vetor[i]);
}
// Usando um loop for-each
for (int valor : vetor) {
System.out.println(valor);
}
Uma matriz é um array de arrays, com elementos organizados em linhas e colunas.
// Declaração de uma matriz 3x3
int[][] matriz;
// Alocação de memória
matriz = new int[3][3];
// Inicialização
matriz[0][0] = 1;
matriz[0][1] = 2;
matriz[0][2] = 3;
matriz[1][0] = 4;
matriz[1][1] = 5;
matriz[1][2] = 6;
matriz[2][0] = 7;
matriz[2][1] = 8;
matriz[2][2] = 9;
// Declaração e inicialização em uma linha
int[][] matriz2 = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
System.out.println(matriz[1][2]); // Saída: 6
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
System.out.print(matriz[i][j] + " ");
}
System.out.println();
}
A pesquisa sequencial percorre cada elemento de um array para verificar se ele é igual ao valor desejado. É uma abordagem simples e útil para arrays desordenados.
public class PesquisaSequencial {
public static int buscaSequencial(int[] array, int valor) {
for (int i = 0; i < array.length; i++) {
if (array[i] == valor) {
return i; // Retorna o índice do elemento encontrado
}
}
return -1; // Retorna -1 se o elemento não for encontrado
}
public static void main(String[] args) {
int[] vetor = {10, 20, 30, 40, 50};
int valorProcurado = 30;
int resultado = buscaSequencial(vetor, valorProcurado);
if (resultado != -1) {
System.out.println("Valor encontrado no índice: " + resultado);
} else {
System.out.println("Valor não encontrado.");
}
}
}
public class PesquisaEmMatriz {
public static int[] buscaSequencial(int[][] matriz, int valor) {
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[i].length; j++) {
if (matriz[i][j] == valor) {
return new int[]{i, j}; // Retorna as coordenadas do valor encontrado
}
}
}
return null; // Retorna null se o valor não for encontrado
}
public static void main(String[] args) {
int[][] matriz = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int valorProcurado = 5;
int[] resultado = buscaSequencial(matriz, valorProcurado);
if (resultado != null) {
System.out.println("Valor encontrado na posição: [" + resultado[0] + "][" + resultado[1] + "]");
} else {
System.out.println("Valor não encontrado.");
}
}
}