Arrays em Java
ARRAY OPERATIONS
├── Declaração (Como registrar clientes em um bordel)
├── Inicialização (Abrir as portas)
├── Acesso (Encontrar seu favorito)
├── Modificação (Trocar os números)
└── Iteração (Fazer a ronda noturna)
Fundamentos
Arrays são como um bordel bem organizado - cada quarto tem seu número, e você sabe exatamente o que esperar em cada um. Sem surpresas desagradáveis.
// Declaração e inicialização
int[] quartos = new int[5]; // 5 quartos vazios
String[] servicos = {"BASICO", "ESPECIAL", "COMPLETO"};
// Array multidimensional (como um prédio com vários andares)
int[][] predio = new int[3][3];
Características Principais
1. Tamanho Fixo (Como um Motel Lotado)
// Uma vez definido o número de quartos, não dá pra criar mais
int numQuartos = 10;
double[] precos = new double[numQuartos];
// Nem adianta chorar, não vai caber mais
System.out.println("Quartos disponíveis: " + precos.length);
2. Indexação Base-Zero (Como Idade de Político)
// O primeiro sempre começa do zero
int primeiro = quartos[0]; // Quarto 0 (mas na placa tá 1)
// O último é sempre um a menos que o total
int ultimo = quartos[quartos.length - 1];
3. Tipo Homogêneo (Como Menu de Boteco)
// Aqui só serve cachaça, amigo
String[] drinks = new String[3];
drinks[0] = "51";
drinks[1] = "Velho Barreiro";
drinks[2] = "Pitú";
Operações Comuns
Iteração (Como Fazer a Ronda)
// Método tradicional (checando quarto por quarto)
for (int i = 0; i < quartos.length; i++) {
System.out.println("Verificando quarto " + i);
}
// Método moderno (câmeras de segurança)
for (String drink : drinks) {
System.out.println("Bebida disponível: " + drink);
}
Manipulação (Como Gerenciar o Estabelecimento)
// Resetar preços (promoção de segunda)
Arrays.fill(precos, 29.90);
// Ordenar por preço (do mais barato pro mais caro)
Arrays.sort(precos);
// Procurar aquele cliente especial
int indice = Arrays.binarySearch(drinks, "51");
Arrays Multidimensionais (Como um Cassino de Luxo)
Matrizes
// Mapa do cassino (3 andares, cada um com 3 salas)
int[][] cassino = {
{1, 2, 3}, // Caça-níqueis
{4, 5, 6}, // Poker
{7, 8, 9} // Roleta
};
// Encontrar mesa específica
int mesa = cassino[1][2]; // Mesa 6 de poker
Iteração em Matrizes (Inspeção Sanitária)
// Verificando todas as mesas
for (int andar = 0; andar < cassino.length; andar++) {
for (int sala = 0; sala < cassino[andar].length; sala++) {
System.out.print("Verificando mesa " + cassino[andar][sala]);
}
System.out.println(" - Andar limpo!");
}
Boas Práticas (Regras da Casa)
Validação de Índices (Checagem de ID)
if (quarto >= 0 && quarto < quartos.length) {
// Cliente pode entrar
return quartos[quarto];
}
Cópia de Arrays (Expandindo o Negócio)
// Abrindo filial com mesma configuração
int[] filial = Arrays.copyOf(quartos, quartos.length);
// Pegando só o melhor da casa
int[] vips = Arrays.copyOfRange(quartos, 1, 4);
Exercícios Práticos
Implemente um sistema de rodízio de "funcionários"
Crie um controle de mesas de poker
Desenvolva um algoritmo de distribuição de gorjetas
Próximos Passos
Depois de dominar esse bordel de arrays, você estará pronto para:
Gerenciar uma rede de estabelecimentos
Implementar sistemas de fidelidade
Expandir para o mercado internacional
26 June 2025