Programação Java: 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.
Nome String [] = 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 pode se expandir 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.
# 147 Na minha próxima vida, eu vou criar matrizes de comprimento 1.000, # 148- 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 o que se não houver recessão económica ocorre? Você está navegando junto com sua matriz de tamanho de 1000, através de um arrumado 825 espaços na matriz. Os componentes com índices de 0 a 824 estão sendo usados, e os componentes com índices de 825 a 999 estão esperando em silêncio para 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 esse cliente pertence muito cedo na matriz, na componente com índice de 7. O que acontece então?
Você leva o nome no número de componente 824 e movê-lo para o componente 825. Em seguida, pegue o nome no componente 823 e movê-lo para o componente 824. Dê o nome no componente 822 e movê-lo para o 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.
# 147 Na minha próxima vida, eu vou deixar três componentes vazios entre cada dois nomes. # 148- E, claro, o seu negócio se expande. Até que, eventualmente, você descobrir que três não são suficientes.