Item 47: Dê preferência à Collection como um tipo de retorno em vez da Stream

Preferência por Collection:

Em métodos que retornam sequências de elementos, dê preferência a Collection como tipo de retorno em vez de Stream.
Collection permite iteração com loops for-each e processamento com streams, oferecendo maior flexibilidade…


This content originally appeared on DEV Community and was authored by Mulher Programadora

Preferência por Collection:

  • Em métodos que retornam sequências de elementos, dê preferência a Collection como tipo de retorno em vez de Stream.
  • Collection permite iteração com loops for-each e processamento com streams, oferecendo maior flexibilidade para os usuários.

Interfaces de Retorno Comuns:

  • Antes do Java 8, Collection, Set, List, Iterable e arrays eram os tipos de retorno mais comuns.
  • Iterable era usada para iteração simples e arrays para valores primitivos ou sequências com requisitos de execução rigorosos.

Impacto do Java 8:

  • A introdução das streams no Java 8 complicou a escolha do tipo de retorno adequado.
  • Apesar das streams, a iteração com loops for-each continua relevante e importante.

Problemas com Streams:

  • Se uma API retorna apenas uma stream, usuários que preferem iteração com loops for-each ficam frustrados.
  • Stream não estende Iterable, dificultando o uso em loops for-each.

Soluções para Iteração em Streams:

  • Não há uma solução ideal para adaptar streams para iteração direta.
  • Pode-se escrever métodos adaptadores, mas o código resultante é muitas vezes confuso e menos eficiente.

Retornando Sequências:

  • Se a sequência será usada apenas em streams, retornar uma Stream é adequado.
  • Se a sequência será usada apenas para iteração, retorne uma Iterable.
  • Para APIs públicas, que precisam atender ambos os casos, Collection ou um subtipo é geralmente a melhor escolha.

Uso de Coleções Especiais:

  • Se a sequência for grande demais para ser armazenada na memória, considere implementar uma coleção customizada.
  • Por exemplo, para representar conjuntos potência, uma coleção customizada pode ser mais adequada.

Trade-offs de Implementação:

  • Em alguns casos, pode ser mais fácil implementar uma stream do que uma coleção customizada.
  • No entanto, streams não são sempre a melhor solução, especialmente quando a iteração seria mais natural.

Considerações de Desempenho:

  • Implementações customizadas de Collection podem ser mais rápidas que streams, mas são mais verbosas.
  • Adaptadores de Stream para Iterable podem impactar negativamente o desempenho.

Conclusão:

  • Ao retornar uma sequência de elementos, considere as necessidades dos usuários de streams e iteração.
  • Retorne uma Collection sempre que possível, e use streams ou iteradores apenas quando necessário.
  • Uma futura extensão de Stream para Iterable pode resolver algumas dessas questões.


This content originally appeared on DEV Community and was authored by Mulher Programadora


Print Share Comment Cite Upload Translate Updates
APA

Mulher Programadora | Sciencx (2024-08-14T23:05:13+00:00) Item 47: Dê preferência à Collection como um tipo de retorno em vez da Stream. Retrieved from https://www.scien.cx/2024/08/14/item-47-de-preferencia-a-collection-como-um-tipo-de-retorno-em-vez-da-stream/

MLA
" » Item 47: Dê preferência à Collection como um tipo de retorno em vez da Stream." Mulher Programadora | Sciencx - Wednesday August 14, 2024, https://www.scien.cx/2024/08/14/item-47-de-preferencia-a-collection-como-um-tipo-de-retorno-em-vez-da-stream/
HARVARD
Mulher Programadora | Sciencx Wednesday August 14, 2024 » Item 47: Dê preferência à Collection como um tipo de retorno em vez da Stream., viewed ,<https://www.scien.cx/2024/08/14/item-47-de-preferencia-a-collection-como-um-tipo-de-retorno-em-vez-da-stream/>
VANCOUVER
Mulher Programadora | Sciencx - » Item 47: Dê preferência à Collection como um tipo de retorno em vez da Stream. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/08/14/item-47-de-preferencia-a-collection-como-um-tipo-de-retorno-em-vez-da-stream/
CHICAGO
" » Item 47: Dê preferência à Collection como um tipo de retorno em vez da Stream." Mulher Programadora | Sciencx - Accessed . https://www.scien.cx/2024/08/14/item-47-de-preferencia-a-collection-como-um-tipo-de-retorno-em-vez-da-stream/
IEEE
" » Item 47: Dê preferência à Collection como um tipo de retorno em vez da Stream." Mulher Programadora | Sciencx [Online]. Available: https://www.scien.cx/2024/08/14/item-47-de-preferencia-a-collection-como-um-tipo-de-retorno-em-vez-da-stream/. [Accessed: ]
rf:citation
» Item 47: Dê preferência à Collection como um tipo de retorno em vez da Stream | Mulher Programadora | Sciencx | https://www.scien.cx/2024/08/14/item-47-de-preferencia-a-collection-como-um-tipo-de-retorno-em-vez-da-stream/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.