Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

338
Vistas
¿Cuál es el propósito de un Stream.Builder en Java?

Para decirlo de otra manera, ¿qué gano al usar Stream.Builder.add() para agregar elementos al generador y luego usar Stream.Builder.build() , en lugar de agregar los elementos en una colección o matriz y crear una secuencia a partir de eso? ?

Supongo que hay un beneficio en algún lugar en algunas circunstancias, pero no es obvio para mí...

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Suponiendo que la máquina tiene suficiente memoria, el uso de Stream.Builder permite agregarle más elementos que Integer.MAX_VALUE .

Internamente, Stream.Builder usa un SpinedBuffer , que es una clase no pública.

De los documentos de SpinedBuffer :

Una colección ordenada de elementos. Los elementos se pueden agregar, pero no eliminar. Pasa por una fase de construcción, durante la cual se pueden agregar elementos, y una fase transversal, durante la cual los elementos se pueden atravesar en orden pero no es posible realizar más modificaciones.

Se utilizan una o más matrices para almacenar elementos. El uso de varias matrices tiene mejores características de rendimiento que una sola matriz utilizada por ArrayList , ya que cuando es necesario aumentar la capacidad de la lista, no es necesario copiar los elementos. Esto suele ser beneficioso en el caso en que los resultados se recorrerán un pequeño número de veces.

Por lo tanto, también evita el cambio de tamaño de ArrayList .

over 4 years ago · Santiago Trujillo Denunciar

0

Tiene una estructura de datos interna muy interesante que está altamente optimizada para inserciones, sin posibilidad de remoción o acceso aleatorio.

Su array y/o Collection pagan un precio adicional por todas las demás funciones que admiten.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda