A diferença entre Arraylist e Vector
Semelhanças:
1. Arraylist e Vector herdam a mesma classe pai e implementam a mesma interface.
2. A camada inferior é implementada por matrizes
3. O comprimento padrão inicial é 10.
Diferenças:
1. Sincronização:
A maioria dos métodos públicos no vetor adiciona uma palavra-chave sincronizada para garantir a sincronização dos métodos, ou seja, a segura do segmento vetorial e o encadeamento Arraylist não é seguro.
2. Expansão diferente
Diferentes propriedades internas podem ser o motivo de diferentes métodos de escala.
A ArrayList possui duas propriedades, o elemento da matriz que armazena dados e o tamanho que armazena o número de registros.
O Vector possui três propriedades: o elemento da matriz que armazena dados, o elemento que armazena o número de registros e a capacidade de capacidade do fator de expansão que expande o tamanho da matriz.
Método de extensão Arraylist
//jdk1.8.0_91Private void Grow (int mincapacity) {// Código consciente do Overflow Int OldCapacity = ElementData.length; int newCapacity = OldCapacity + (OldCapacity >> 1); if (newCapacity - MinCapacity <0) newCapacity = Mincapacity; if (newCapacity - max_array_size> 0) newCapacity = hugecapacity (mincapacidade); // MinCapacity geralmente é próximo do tamanho, então isso é uma vitória: elementData = Arrays.copyof (ElementData, NewCapacity); }Pode -se observar que, quando a condição de expansão é atendida, o tamanho da matriz estendido é 1,5 vezes o comprimento da matriz original e o maior dos parâmetros passados.
Método de extensão vetorial
//jdk1.8.0_91Private void Grow (int mincapacity) {// Código consciente do Overflow Int OldCapacity = ElementData.length; int newCapacity = OldCapacity + ((CapacateIncrement> 0)? Capacidade -incremento: OldCapacity); if (newCapacity - MinCapacity <0) newCapacity = Mincapacity; if (newCapacity - max_array_size> 0) newCapacity = hugecapacity (mincapacidade); ElementData = Arrays.copyof (ElementData, NewCapacity); }Pode-se observar que, quando o fator de expansão é maior que 0, o comprimento da nova matriz é o comprimento da matriz original + o fator de expansão, caso contrário, o comprimento da matriz sub-novo é o dobro do comprimento da matriz original. Compare o novo comprimento da matriz gerado acima com o comprimento do parâmetro passado, o maior é o novo comprimento final.
Obrigado pela leitura, espero que isso possa ajudá -lo. Obrigado pelo seu apoio a este site!