Diferença entre Arraylist e Vector

Anonim

Arraylist vs Vector

Um arraylist pode ser visto como uma matriz dinâmica, que pode crescer em Tamanho. Devido a esta razão, o programador não precisa saber o tamanho do arraylista quando ele / ela está definindo isso. O vetor também pode ser visto como uma matriz que pode crescer em tamanho. Os vetores podem ser facilmente alocados e podem ser usados ​​para quando o tamanho necessário do armazenamento não é conhecido até o tempo de execução.

O que é um Arraylist?

Um arraylist pode ser visto como uma matriz dinâmica, que pode crescer em tamanho. Portanto, os arraylistas são ideais para serem usados ​​em situações em que você não conhece o tamanho dos elementos necessários no momento da declaração. Em Java, os arraylistas só podem armazenar objetos, não podem conter tipos primitivos diretamente (você pode colocar os tipos primitivos dentro de um objeto ou usar as classes wrapper dos tipos primitivos). Geralmente arraylists são fornecidos com métodos para realizar inserção, exclusão e busca. A complexidade do tempo de acesso a um elemento é o (1), enquanto a inserção e exclusão têm uma complexidade de tempo de o (n). Em Java, os arraylistas podem ser percorridos usando loops foreach, iteradores ou simplesmente usando os índices. Em Java, arraylists foram introduzidos a partir da versão 1. 2 e faz parte do Framework de Coleções de Java.

O que é um vetor?

O vetor também é uma matriz que pode crescer em tamanho. Os vetores podem ser facilmente alocados e podem ser usados ​​quando o tamanho necessário do armazenamento não é conhecido até o tempo de execução. Os vetores também só podem conter objetos e não podem conter tipos primitivos. Os vetores são sincronizados, portanto, podem ser usados ​​de forma segura em ambientes multiprocessados. Os vetores são fornecidos com métodos para adicionar objetos, eliminar objetos e objetos de busca. Semelhante ao arraylist em java, os vetores podem ser percorridos usando loops foreach, iteradores ou simplesmente usando os índices. Quando se trata de Java, vetores foram incluídos desde a primeira versão do Java.

Qual a diferença entre Arraylist e Vector?

Embora tanto os arraylistas como os vetores sejam muito semelhantes aos arrays dinâmicos que podem crescer em tamanho, eles têm algumas diferenças importantes. A principal diferença entre arraylistas e vetores é que os vetores são sincronizados enquanto os arraylistas não estão sincronizados. Portanto, o uso de arraylists em ambientes multithread não será adequado, enquanto os vetores podem ser usados ​​com segurança em ambientes multithreaded (uma vez que eles são thread-safe). Mas a sincronização em vetores causaria uma redução no desempenho. Por conseguinte, não seria uma boa ideia usar vetores em um único ambiente com rosca. Internamente, arraylists e vetores usam arrays para armazenar objetos. Quando o espaço atual não é suficiente, os vetores duplicarão o tamanho de sua matriz interna, enquanto os arraylistas aumentam o tamanho de sua matriz interna em 50%.Mas quando se utilizam arraylistas e vetores, ao dar uma capacidade inicial adequada, é possível evitar o redimensionamento desnecessário da matriz interna. Em uma situação em que a taxa de crescimento de dados é conhecida, o uso de vetores seria mais adequado uma vez que o valor incremental dos vetores poderia ser definido.