Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2023

ProgramaçãoLinguagens de programação
Código
fg071457
Banca
FGV
Órgão
TCE-SP
Ano
2023
Nível
Superior
Cargo
Agente da Fiscalização - TI
O analista José criou a função CalcObjs em JavaScript. A CalcObjs recebe uma coleção de objetos e realiza determinado cálculo em cada objeto da coleção. No caso de existirem objetos repetidos, a CalcObjs considera apenas a primeira ocorrência do objeto na coleção. A fim de rastrear os objetos já processados, José utilizou uma estrutura de dados disponível no JavaScript, do tipo keyed collection, cujos valores são únicos entre si e passíveis de remoção pelo coletor de lixo.Para rastrear os objetos processados, José utilizou a estrutura de dados do JavaScript:
  1. AMap;
  2. BSymbol;
  3. CWeakSet;
  4. DSharedArrayBuffer;
  5. EUint8ClampedArray.
Revelar gabarito e comentário

GabaritoC — WeakSet;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Estruturas de Dados em JavaScript – WeakSet

Gabarito: letra C (WeakSet). A estrutura que atende aos requisitos de ser uma keyed collection, ter valores únicos entre si e permitir remoção pelo coletor de lixo é o WeakSet. As demais opções não se encaixam.

Explicação

  • WeakSet é uma coleção de objetos onde cada objeto pode aparecer apenas uma vez (valores únicos). As referências aos objetos são fracas, ou seja, se não houver outras referências, o objeto pode ser coletado pelo garbage collector. Isso atende perfeitamente ao rastreamento de objetos processados, especialmente a parte de "passíveis de remoção pelo coletor de lixo".

  • Alternativa A – Map: Map é uma coleção chave-valor, não de valores únicos. As chaves são únicas, mas os valores podem se repetir. Embora seja uma keyed collection, não atende ao requisito de valores únicos.

  • Alternativa B – Symbol: Symbol é um tipo primitivo que pode ser usado como chave de propriedade, mas não é uma coleção.

  • Alternativa D – SharedArrayBuffer: É um objeto de memória compartilhada para threads, não uma coleção.

  • Alternativa E – Uint8ClampedArray: É uma visualização de array tipada para valores de 8 bits sem sinal, não uma coleção keyed.

Portanto, a única opção que corresponde é o WeakSet.

1Map
Chave-valor
Chaves únicas
Valores podem repetir
2Set
Valores únicos
Referência forte
3WeakSet
Valores únicos (objetos)
Referência fraca
Coletável pelo GC
4WeakMap
Chave-objeto
Referência fraca
Keyed collections (JS)
LEVELsoulevel.com.br
Keyed collections (JS): Map (Chave-valor, Chaves únicas, Valores podem repetir); Set (Valores únicos, Referência forte); WeakSet (Valores únicos (objetos), Referência fraca, Coletável pelo GC); WeakMap (Chave-objeto, Referência fraca)

Gabarito: letra C.

Link permanente: /questoes/fg071457