> For the complete documentation index, see [llms.txt](https://educacion.gitbook.io/programacion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://educacion.gitbook.io/programacion/exercicios-java/ud6-exercicios/conxuntos.md).

# Conxuntos

1. Implementa unha clase Conjunto que teña as seguintes características:
   1. **Non xestiona colisións**. Asumimos que non as vai a ter
   2. **Non redimensiona**, traballamos con unha estructura de datos de tamaño fixo.
   3. Almacena un array de enteiros como estructura de datos que almacena o conxunto
   4. Define un **constructor** que reciba como parámetro o array de enteiros co que vai a traballar
   5. Define unha método **calcularPosicion**, que reciba como parámetro un enteiro, e a partir do seu valor hash e o numero de elementos do array, determine en que posición se almacena. Ten en conta que a función hash podería, en algun caso, devolver valores negativos, e as posicións do array son sempre positivas
   6. Define un método **contains,** que reciba como parámetro un enteiro, e determina se o enteiro está no conxunto ou non. Non é necesario recorrer de forma completa o conxunto, se non comprobar se na posición na que lle corresponde estar, efectivamente esta.
   7. Define un método **engadir**, que reciba como parámetro un enteiro, e que o engada no conxunto no caso de que non exista. Debe engadilo na posición que lle corresponda. Ten en conta que os conxuntos non admiten duplicados.
   8. Define un método **intersección**, que reciba como parámetro outro conxunto, e que devolva un novo conxunto cos elementos comúns a ambos conxutos. Ten en conta que o tamaño máximo do novo conxunto será o do menor dos conxuntos
   9. Define un método **unión**, que reciba como parámetro outro conxunto, e que devolva un novo conxunto cos elementos de cada un dos dous conxuntos. Ten en conta que o tamaño máximo será a suma dos tamaños dos dous conxuntos
   10. Implementa un método **toString()**, podes aproveitar o toString que a clase Arrays proporciona.
   11. Implementa unha clase **App** con un método main na que:
       1. Crea un conxunto c1 de lonxitude 10, no que insertes os números 10, 25, 3 e 17
       2. Crea un conxunto c2 de lonxitude 10, no que insertes os númeos 10, 3 e 8
       3. Mostra por pantalla os valores dos conxuntos
       4. Crea un novo conxunto que sexa a intersección dos dous, e mostra o seu contido por pantalla
       5. Crea un novo conxunto que sexa a unión dos dous, e mostra o seu contido por pantalla


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://educacion.gitbook.io/programacion/exercicios-java/ud6-exercicios/conxuntos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
