Tipos de coleção de F#
Examinando este tópico, você pode determinar que ternos de tipo coleção de F# melhores uma necessidade específico. Esses tipos de coleção diferem de coleção no .NET Framework, como aqueles no namespace de System.Collections.Generic , que os tipos de coleção de F# são criados a partir de uma perspectiva funcional de programação em vez de uma perspectiva orientada a objeto. Mais especificamente, somente a coleção array tem elementos mutáveis. Portanto, quando você altera uma coleção, você cria uma instância de coleção alterada em vez de modificar a coleção original.
Os tipos de coleção também diferem no tipo de estrutura de dados nos objetos são armazenados. Estruturas de dados como o hash as tabelas, listas vinculadas, e matrizes têm características de desempenho diferentes e um conjunto diferente de operações disponíveis.
Tipos de coleção de F#
A tabela seguinte mostra tipos de coleção de F#.
Tipo |
Descrição |
Links relacionados |
---|---|---|
Uma série ordenada, imutável de elementos do mesmo tipo. Implementado como uma lista vinculada. |
||
Uma coleção de tamanho fixo, com base zero, mutável dos elementos de dados consecutivos que são todo o mesmo tipo. |
||
Uma série lógica de elementos que são qualquer um tipo. Sequências são particularmente úteis quando você tiver um grande, coleção ordenada de dados mas não necessariamente esperam usar todos os elementos. Os elementos individuais da seqüência são computados somente conforme necessário, então uma seqüência pode executar melhor do que uma lista se nem todos os elementos é usada. Sequências são representadas pelo tipo seq<'T>, que é um alias para IEnumerable<T>. Portanto, qualquer tipo do .NET Framework que implementa IEnumerable pode ser usado como uma seqüência. |
||
Um dicionário imutável de elementos. Os elementos são acessados por chave. |
||
Um conjunto imutável que é baseado em árvores binárias, onde a comparação é a função estrutural de comparação de F#, que usa potencialmente implementações de interface de IComparable em valores chave. |
Tabela de funções
Esta seção compara as funções que estão disponíveis em tipos de coleção de F#. A complexidade computacional da função é fornecida Em, onde é o tamanho da primeira coleção, e M é o tamanho da segunda coleção, se houver. Um sublinhado (-) indica que essa função não está disponível na coleção. Porque as seqüências lazy são avaliadas, uma função como Seq.distinct pode ser O (1) porque ele retorna imediatamente, embora ainda afeta o desempenho da seqüência quando enumerado.
Função |
Matriz |
List |
Seqüência |
Mapa |
Set |
Descrição |
---|---|---|---|---|---|---|
acrescentar |
OS M () |
OS (N) |
OS (N) |
- |
- |
Retorna uma nova coleção que contém os elementos da coleção primeiro seguido por elementos da segunda coleção. |
adicione |
- |
- |
- |
Em o (log) |
Em o (log) |
Retorna uma nova coleção com o elemento adicionado. |
média |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Retorna a média dos elementos na coleção. |
averageBy |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Retorna a média dos resultados de funções fornecidas aplicado a cada elemento. |
blit |
OS (N) |
- |
- |
- |
- |
Copia uma seção de uma matriz. |
cache |
- |
- |
OS (N) |
- |
- |
Cálculos e elementos dos armazenamentos de uma seqüência. |
conversão |
- |
- |
OS (N) |
- |
- |
Converte elementos para o tipo especificado. |
escolha |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Aplica a função determinada f para cada elemento x da lista. Retorna a lista que contém os resultados para cada elemento onde a função retorna Some(f(x)). |
coletar |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Aplica a função fornecida para cada elemento da coleção, concatena todos os resultados, e retorna a lista combinada. |
compareWith |
- |
- |
OS (N) |
- |
- |
Compara duas seqüências usando a função determinada de comparação, elemento do elemento. |
concat |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Combina as enumeração -- enumerações disponíveis como uma única enumeração concatenada. |
contém |
- |
- |
- |
- |
Em o (log) |
Retorna true se o dataset contém o elemento especificado. |
containsKey |
- |
- |
- |
Em o (log) |
- |
Testa se um elemento está no domínio de um mapa. |
contagem |
- |
- |
- |
- |
OS (N) |
Retorna o número de elementos no dataset. |
countBy |
- |
- |
OS (N) |
- |
- |
Aplica uma função de geração para cada elemento de uma seqüência, e retorna uma seqüência que gere chaves exclusivas e o número de acertos na seqüência original. |
impressão |
OS (N) |
- |
OS (N) |
- |
- |
Copia a coleção. |
crie |
OS (N) |
- |
- |
- |
- |
Cria uma matriz de inteiros todos elementos que são inicialmente o valor fornecido. |
atraso |
- |
- |
o (1) |
- |
- |
Retorna uma seqüência que é compilada da especificação tardia de uma determinada seqüência. |
diferença |
- |
- |
- |
- |
O log Em M (*) |
Retorna um novo conjunto com os elementos do segundo conjunto removido do primeiro definido. |
distinto |
O (1 *) |
Retorna uma seqüência que não contém nenhuma entrada duplicada de acordo com hash genéricos comparações de igualdade e nas entradas. Se um elemento ocorre várias vezes em uma seqüência, visitas posteriores são descartados. |
||||
distinctBy |
O (1 *) |
Retorna uma seqüência que não contém nenhuma entrada duplicada de acordo com as comparações genéricos de hash e de igualdade em chaves que a função de geração determinada retorna. Se um elemento ocorre várias vezes em uma seqüência, visitas posteriores são descartados. |
||||
vazio |
o (1) |
o (1) |
o (1) |
o (1) |
o (1) |
Cria uma coleção vazia. |
existe |
OS (N) |
OS (N) |
OS (N) |
Em o (log) |
Em o (log) |
Testa se qualquer elemento da seqüência satisfaz o predicado dado. |
exists2 |
(O minuto (N, M)) |
- |
(O minuto (N, M)) |
Testa se qualquer par de elementos correspondentes de seqüências de entrada satisfaz o predicado dado. |
||
preenchimento |
OS (N) |
Define um intervalo de elementos da matriz para o valor fornecido. |
||||
filtro |
OS (N) |
OS (N) |
OS (N) |
OS (N) |
OS (N) |
Retorna uma nova coleção que contém apenas elementos da coleção para que o predicado determinado retorna true. |
localizar |
OS (N) |
OS (N) |
OS (N) |
Em o (log) |
- |
Retorna o primeiro elemento para que a função retorna determinada true. Retorna KeyNotFoundException se nenhum tal elemento existe. |
findIndex |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Retorna o índice do primeiro elemento na matriz que satisfaz o predicado dado. Aumenta KeyNotFoundException se nenhum elemento satisfaz o predicado. |
findKey |
- |
- |
- |
Em o (log) |
- |
Avalia a função em cada mapeamento na coleção, e retorna a chave para o primeiro mapeamento onde a função retorna true. Se nenhum tal elemento existir, gera KeyNotFoundExceptionde essa função. |
dobra |
OS (N) |
OS (N) |
OS (N) |
OS (N) |
OS (N) |
Aplica uma função para cada elemento da coleção, rosqueando um argumento de acumulador com a computação. Se a função de entrada é f e os elementos são i0… em, os cálculos f de essa função (… f i0 (s)…) em. |
fold2 |
OS (N) |
OS (N) |
- |
- |
- |
Aplica uma função para os elementos correspondentes de duas coleções, rosqueando um argumento de acumulador com a computação. As coleções devem ter tamanhos idênticos. Se a função de entrada é f e os elementos são…… i0 o jN em e j0, os cálculos f de essa função (… f i0 j0 (s)…) no jN. |
foldBack |
OS (N) |
OS (N) |
- |
OS (N) |
OS (N) |
Aplica uma função para cada elemento da coleção, rosqueando um argumento de acumulador com a computação. Se a função de entrada é f e os elementos são i0… em, os cálculos f i0 de essa função (… f em (s)). |
foldBack2 |
OS (N) |
OS (N) |
- |
- |
- |
Aplica uma função para os elementos correspondentes de duas coleções, rosqueando um argumento de acumulador com a computação. As coleções devem ter tamanhos idênticos. Se a função de entrada é f e os elementos são…… i0 o jN em e j0, os cálculos f i0 j0 de essa função (… (f no jN s)). |
forall |
OS (N) |
OS (N) |
OS (N) |
OS (N) |
OS (N) |
Testa se todos os elementos da coleção satisfazem o predicado dado. |
forall2 |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Testa se todos os elementos correspondentes da coleção satisfazem o predicado determinado por pares. |
get/nth |
o (1) |
OS (N) |
OS (N) |
- |
- |
Retorna um elemento da coleção dada seu índice. |
o início |
- |
o (1) |
o (1) |
- |
- |
Retorna o primeiro elemento da coleção. |
init |
OS (N) |
OS (N) |
o (1) |
- |
- |
Cria uma coleção dada a dimensão e uma função do gerador para calcular os elementos. |
initInfinite |
- |
- |
o (1) |
- |
- |
Gera uma seqüência que, quando iterada, retorna os elementos sucessivos chamar a função especificados. |
intersecção |
- |
- |
- |
- |
O (log Em log M *) |
Calcula a interseção de dois conjuntos. |
intersectMany |
- |
- |
- |
- |
OS N1 (* N2…) |
Calcula a interseção de uma seqüência de conjuntos. A seqüência não deve ser vazia. |
isEmpty |
o (1) |
o (1) |
o (1) |
o (1) |
- |
Retorna true se a coleção estiver vazia. |
isProperSubset |
- |
- |
- |
- |
O log Em M (*) |
Retorna true se todos os elementos de definir primeiro no segundo conjunto, e pelo menos um elemento do segundo conjunto não está definido no primeiro. |
isProperSuperset |
- |
- |
- |
- |
O log Em M (*) |
Retorna true se todos os elementos do segundo conjunto está definido no primeiro, e pelo menos um elemento de definido inicialmente não estiver no segundo conjunto. |
isSubset |
- |
- |
- |
- |
O log Em M (*) |
Retorna true se todos os elementos de definir primeiro no segundo conjunto. |
isSuperset |
- |
- |
- |
- |
O log Em M (*) |
Retorna true se todos os elementos do segundo conjunto está definido no primeiro. |
ITER |
OS (N) |
OS (N) |
OS (N) |
OS (N) |
OS (N) |
Aplica a função fornecida para cada elemento da coleção. |
iteri |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Aplica a função fornecida para cada elemento da coleção. O número inteiro que é passado para a função indica o índice do elemento. |
iteri2 |
OS (N) |
OS (N) |
- |
- |
- |
Aplica a função recebe a um par de elementos que são desenhados índices correspondentes em duas matrizes. O número inteiro que é passado para a função indica o índice de elementos. As duas matrizes devem ter o mesmo tamanho. |
iter2 |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Aplica a função recebe a um par de elementos que são desenhados índices correspondentes em duas matrizes. As duas matrizes devem ter o mesmo tamanho. |
comprimento |
o (1) |
OS (N) |
OS (N) |
- |
- |
Retorna o número de elementos na coleção. |
mapa |
OS (N) |
OS (N) |
o (1) |
- |
- |
Cria uma coleção cujos elementos são os resultados de aplicar a função fornecida para cada elemento da matriz. |
map2 |
OS (N) |
OS (N) |
o (1) |
- |
- |
Cria uma coleção cujos elementos são os resultados de aplicar a função dada aos elementos correspondentes das duas coleções por pares. As duas matrizes entradas devem ter o mesmo tamanho. |
map3 |
- |
OS (N) |
- |
- |
- |
Cria uma coleção cujos elementos são os resultados de aplicar a função dada aos elementos correspondentes das três coleções simultaneamente. |
mapi |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Cria uma matriz cujos elementos são os resultados de aplicar a função fornecida para cada elemento da matriz. O índice inteiro que é passado para a função indica o índice de um elemento que está sendo transformado. |
mapi2 |
OS (N) |
OS (N) |
- |
- |
- |
Cria uma coleção cujos elementos são os resultados de aplicar a função dada aos elementos correspondentes das duas coleções por pares, também passando o índice de elementos. As duas matrizes entradas devem ter o mesmo tamanho. |
máximo |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Retorna o maior elemento na coleção, comparadas usando o operador de máximo . |
maxBy |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Retorna o maior elemento na coleção, comparadas usando máximo o resultado da função. |
maxElement |
- |
- |
- |
- |
Em o (log) |
Retorna o maior elemento no conjunto de acordo com a ordem que é usado para o dataset. |
minuto |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Retorna o elemento na coleção, comparadas usando o operador de minuto . |
minBy |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Retorna o elemento na coleção, comparadas usando o operador de minuto o resultado da função. |
minElement |
- |
- |
- |
- |
Em o (log) |
Retorna o menor elemento no conjunto de acordo com a ordem que é usado para o dataset. |
ofArray |
- |
OS (N) |
o (1) |
OS (N) |
OS (N) |
Cria uma coleção que contém os mesmos elementos da matriz fornecida. |
ofList |
OS (N) |
- |
o (1) |
OS (N) |
OS (N) |
Cria uma coleção que contém os mesmos elementos que a lista fornecida. |
ofSeq |
OS (N) |
OS (N) |
- |
OS (N) |
OS (N) |
Cria uma coleção que contém os mesmos elementos que a seqüência determinada. |
por pares |
- |
- |
OS (N) |
- |
- |
Retorna uma seqüência de cada elemento na seqüência de entrada e do seu antecessor exceto para o primeiro elemento, que é retornado somente como o antecessor do segundo elemento. |
partition |
OS (N) |
OS (N) |
- |
OS (N) |
OS (N) |
Divide a coleção em duas coleções. A primeira coleção contém os elementos para que o predicado determinado retorna true, e a segunda coleção contém os elementos para que o predicado determinado retorna false. |
permutar |
OS (N) |
OS (N) |
- |
- |
- |
Retorna uma matriz com todos os elementos permutados de acordo com a permutação especificada. |
picareta |
OS (N) |
OS (N) |
OS (N) |
Em o (log) |
- |
Aplica a função determinada para sucessivos elementos, retornando o primeiro resultado onde a função retorna alguns. Se a função nunca retorna alguns, KeyNotFoundException é gerado. |
readonly |
- |
- |
OS (N) |
- |
- |
Cria um objeto de seqüência que representantes a seqüência determinada objeto. Esta operação garante que uma conversão de tipos não pode redescobrir e transformar a seqüência original. Por exemplo, se fornecida uma matriz, a seqüência retornado retornará os elementos da matriz, mas você não pode converter o objeto retornado da seqüência a uma matriz. |
reduza |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Aplica uma função para cada elemento da coleção, rosqueando um argumento de acumulador com a computação. Inicia essa função aplicando a função para os primeiros dois elementos, passa esse resultado da função juntamente com o terceiro elemento, e assim por diante. a função retorna o resultado final. |
reduceBack |
OS (N) |
OS (N) |
- |
- |
- |
Aplica uma função para cada elemento da coleção, rosqueando um argumento de acumulador com a computação. Se a função de entrada é f e os elementos são i0… em, os cálculos f i0 de essa função (… (f iN-1 em).) |
remova |
- |
- |
- |
Em o (log) |
Em o (log) |
Remove um elemento do domínio do mapa. Nenhuma exceção é gerada se o elemento não. |
replicar |
- |
OS (N) |
- |
- |
- |
Cria uma lista de um comprimento especificado com cada elemento ao valor fornecido. |
rev |
OS (N) |
OS (N) |
- |
- |
- |
Retorna uma nova lista com elementos em ordem inversa. |
verificação |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Aplica uma função para cada elemento da coleção, rosqueando um argumento de acumulador com a computação. Esta operação aplica a função e o segundo argumento para o primeiro elemento da lista. A operação então passa esse resultado da função juntamente com o segundo elemento e assim por diante. Finalmente, a operação retorna a lista de resultados intermediários e o resultado final. |
scanBack |
OS (N) |
OS (N) |
- |
- |
- |
Se assemelha a operação foldBack mas a retorna os resultados intermediários e finais. |
singleton |
- |
- |
o (1) |
- |
o (1) |
Retorna uma seqüência que gere somente um item. |
dataset |
o (1) |
- |
- |
- |
- |
Define um elemento de uma matriz para o valor especificado. |
ignorar |
- |
- |
OS (N) |
- |
- |
Retorna uma seqüência que pular os elementos de Em a seqüência subjacente e gere os elementos restantes na seqüência. |
skipWhile |
- |
- |
OS (N) |
- |
- |
Retorna uma seqüência que, quando iterada, pule os elementos da seqüência subjacente quando o predicado determinado retornar true e render nos elementos restantes a seqüência. |
tipo |
O (média de log Em Em) O caso de N^2 () |
O log de Em (Em) |
O log de Em (Em) |
- |
- |
Classificar a coleção pelo valor do elemento. Os elementos são comparados usando compare. |
sortBy |
O (média de log Em Em) O caso de N^2 () |
O log de Em (Em) |
O log de Em (Em) |
- |
- |
Classificar a lista determinada usando as teclas que a projeção determinada fornece. As chaves são comparadas usando compare. |
sortInPlace |
O (média de log Em Em) O caso de N^2 () |
- |
- |
- |
- |
Classifica os elementos de uma matriz transformando no local e usando a função determinada de comparação. Os elementos são comparados usando compare. |
sortInPlaceBy |
O (média de log Em Em) O caso de N^2 () |
- |
- |
- |
- |
Classifica os elementos de uma matriz transformando no local e usando a projeção determinada para as chaves. Os elementos são comparados usando compare. |
sortInPlaceWith |
O (média de log Em Em) O caso de N^2 () |
- |
- |
- |
- |
Classifica os elementos de uma matriz transformando no local e usando a função de comparação como determinada ordem. |
sortWith |
O (média de log Em Em) O caso de N^2 () |
O log de Em (Em) |
- |
- |
- |
Classifica os elementos de uma coleção, usando a função determinada de comparação como a ordem e retornando uma nova coleção. |
sub |
OS (N) |
- |
- |
- |
- |
Cria uma matriz que contém o subrange dado especificado o índice inicial e o comprimento. |
soma |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Retorna a soma dos elementos na coleção. |
sumBy |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Retorna a soma dos resultados que são gerados aplicando a função para cada elemento da coleção. |
parte final |
- |
o (1) |
- |
- |
- |
Retorna a lista sem seu primeiro elemento. |
tomada |
- |
- |
OS (N) |
- |
- |
Retorna os elementos da seqüência até uma pontuação especificada. |
takeWhile |
- |
- |
o (1) |
- |
- |
Retorna uma seqüência que, quando iterada, guarde os elementos da seqüência subjacente quando o predicado determinado retornar true e não retorna então não mais elemento. |
toArray |
- |
OS (N) |
OS (N) |
OS (N) |
OS (N) |
Cria uma matriz de coleção dada. |
toList |
OS (N) |
- |
OS (N) |
OS (N) |
OS (N) |
Cria uma lista de coleção dada. |
toSeq |
o (1) |
o (1) |
- |
o (1) |
o (1) |
Cria uma seqüência de coleção dada. |
truncado |
- |
- |
o (1) |
- |
- |
Retorna uma seqüência que, quando enumerada, retorna não mais do que os elementos de Em. |
tryFind |
OS (N) |
OS (N) |
OS (N) |
Em o (log) |
- |
Procura por um elemento que satisfaz um determinado predicado. |
tryFindIndex |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Procura o primeiro elemento que satisfaz um determinado predicado e retorna o índice do elemento correspondente, ou se nenhum None tal elemento existe. |
tryFindKey |
- |
- |
- |
Em o (log) |
- |
Retorna a chave do primeiro mapeamento na coleção que satisfaz o predicado determinado, ou retorna None se nenhum tal elemento existe. |
tryPick |
OS (N) |
OS (N) |
OS (N) |
Em o (log) |
- |
Aplica a função determinada para sucessivos elementos, retornando o primeiro resultado onde a função retorna Some para qualquer valor. Se nenhum tal elemento existir, a operação retorna None. |
desdobrar |
- |
- |
OS (N) |
- |
- |
Retorna uma seqüência que contém os elementos que a computação determinada produz. |
união |
- |
- |
- |
- |
O log Em M (*) |
Calcula a união dos dois conjuntos. |
unionMany |
- |
- |
- |
- |
OS N1 (* N2…) |
Calcula a união de uma seqüência de conjuntos. |
abra o zíper |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Divide uma lista de pares em duas listas. |
unzip3 |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Divide uma lista triplicar-se em três listas. |
da janela |
- |
- |
OS (N) |
- |
- |
Retorna uma seqüência do windows que gere deslizamento dos elementos recipientes que são desenhados a seqüência de entrada. Cada janela é retornada como uma matriz atualizado. |
CEP |
OS (N) |
OS (N) |
OS (N) |
- |
- |
As combina duas coleções em uma lista de pares. As duas listas devem ter tamanhos iguais. |
zip3 |
OS (N) |
OS (N) |
OS (N) |
- |
- |
Combina as três coleções em uma lista triplicar-se. As listas devem ter tamanhos iguais. |