"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:
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;
}
}