|
|
- "Leikkaus on joukko-opin käsite. Joukkojen A ja B leikkaus sisältää kaikki ne alkiot, jotka kuuluvat sekä joukkoon A että joukkoon B. Joukkojen A ja B leikkausta merkitään A ∩ B." (Wikipedia)
-
- Tässä tehtävässä sinun tulee kirjoittaa luokka Leikkaus. Leikkaus-luokassa on oltava laskeLeikkaus-niminen metodi täsmälleen seuraavan kuvauksen mukaisena:
-
- - metodi on julkinen
- - metodi on staattinen eli luokkametodi
- - metodi palauttaa uuden listan, joka on tyyppiä List<Integer>
- - metodi saa parametriarvoinaan kaksi kokonaislukulistaa (List<Integer>)
- - metodi palauttaa leikkauksen kahdesta annetusta listasta, eli sellaisen listan, joka sisältää kaikki sellaiset luvut, jotka ovat molemmissa parametriarvoina saaduissa listoissa
- - kukin luku saa esiintyä leikkauksessa korkeintaan kerran
- - leikkauksen lukujen järjestyksellä ei ole merkitystä.
-
- Kirjoita myös main-metodi, jossa kokeilet haluamallasi tavalla, että kirjoittamasi koodi toimii oikein. Tässä tehtävässä main-metodisi saa tulostaa mitä tahansa. Tehtävän tarkastus ei perustu kirjoittamaasi main-metodiin, vaan erilliseen valmiiksi kirjoitettuun testiluokkaan.
-
- ```
- Example output:
- Lista A: [-70, 120, 98, 1, 789]
- Lista B: [98, 42, 5, 1, -70]
-
- Listojen A ja B leikkaus: [-70, 1, 98]
- ```
-
- --------------------
-
- **Leikkaus.java**
-
- ```
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
-
- public class Leikkaus {
-
- public static void main(String[] args) {
- List<Integer> listaA = List.of(-70, 120, 98, 1, 789);
- List<Integer> listaB = List.of(98, 42, 5, 1, -70, 98);
-
- System.out.printf(
- "Listojen A ja B leikkaus: %s\n",
- Leikkaus.laskeLeikkaus(listaA, listaB)
- );
- }
-
- public static List<Integer> laskeLeikkaus(List<Integer> ekaLista, List<Integer> tokaLista) {
-
- List<Integer> leikkausLista = new ArrayList<Integer>();
- int i = 0;
- // Intersection
- while (i < ekaLista.size()) {
- int a = 0;
- while (a < tokaLista.size()) {
-
- // Get common values if leikkausLista does not contain the value already
- if (ekaLista.get(i) == tokaLista.get(a) && !leikkausLista.contains(tokaLista.get(a))) {
- leikkausLista.add(tokaLista.get(a));
- }
- a++;
- }
- i++;
- }
-
- Collections.sort(leikkausLista);
- return leikkausLista;
- }
-
- }
- ```
|