Java programação: as limitações de matrizes

Arrays em Java são bons, mas eles têm algumas limitações graves. Imagine que você armazenar nomes de clientes em alguma ordem predeterminada. Seu código contém uma matriz, e a matriz tem espaço para 100 nomes.

String nome [] = new String [100] -para (int i = 0- i lt; 100- i ++) {name [i] = new String () -}

Tudo está bem até que, um dia, número de cliente 101 mostra-se. Como seu programa é executado, você insere os dados para o cliente 101, esperando desesperadamente que a matriz com 100 componentes podem expandir-se para atender às suas necessidades de crescimento.

Não tive essa sorte. Arrays não se expandem. Seu programa trava com um Índice de matriz fora dos limites de exceção.

“Na minha próxima vida, eu vou criar matrizes de comprimento 1,000”, você diz para si mesmo. E quando sua próxima vida rola ao redor, você fazer exatamente isso.

Nome String [] = new String [1000] -para (int i = 0- i lt; 1000- i ++) {name [i] = new String () -}


Mas durante a sua próxima vida, uma recessão econômica ocorre. Em vez de ter 101 clientes, você tem apenas 3 clientes. Agora você está perdendo espaço para 1.000 nomes quando o espaço por 3 nomes faria.

E se há recessão econômica ocorre? Você está navegando junto com sua matriz de tamanho de 1000, utilizando um arrumado 825 espaços na matriz. Os componentes com índices de 0 a 824 estão a ser utilizados, e os componentes com índices de 825 a 999 estão à espera calmamente a ser preenchido.

Um dia, um cliente novo em folha aparece. Porque seus clientes são armazenados em ordem (em ordem alfabética pelo sobrenome, numericamente pelo número da Segurança Social, o que for), você quer apertar esse cliente para o componente correto de sua matriz. O problema é que este cliente pertence muito cedo na matriz, no componente com índice 7. O que acontece então?

Você leva o nome no número de componente 824 e movê-lo ao componente 825. Então você pega o nome no componente 823 e movê-lo ao componente 824. Dê o nome no componente 822 e movê-lo ao componente 823.

Você continuar fazendo isso até que você se mudou o nome no componente 7. Então você colocar o nome do novo cliente no componente 7. Que dor! Claro, o computador não reclamar. Mas como você se move em torno de todos esses nomes, você desperdiçar o tempo de processamento, você desperdiça energia, e você perder todos os tipos de recursos.

“Na minha próxima vida, eu vou deixar três componentes vazios entre cada dois nomes.” E, claro, o seu negócio se expande. Até que, eventualmente, você descobrir que três não são suficientes.


Publicações relacionadas