"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 - metodi saa parametriarvoinaan kaksi kokonaislukulistaa (List) - 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 listaA = List.of(-70, 120, 98, 1, 789); List 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 laskeLeikkaus(List ekaLista, List tokaLista) { List leikkausLista = new ArrayList(); 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; } } ```