Gyakorlati alapok

2 tömb különbsége

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

A különbség az a halmazelem-csoport, amely 2 halmazból úgy keletkezik, hogy az első halmaz elemei közül csak azokat tartalmazza, amelyeket a második nem.

 

Az alábbi példakódban az átláthatóság kedvéért 2 db fix int értékekkel feltöltött tömbből indulunk ki:

 

int[] tomb1 = new int[] {1, 3, 5, 7, 9, 11, 13};
int[] tomb2 = new int[] {2, 4, 6, 8, 9, 10, 13};
 

A különbségi tömb mérete - feltételeiből adódóan - maximum tomb1 méretű lehet:

 

int[] tombKulonbseg = new int[tomb1.length];

 

A különbségi feltétel vizsgálatához mindkét tömb összes elemét egymással össze kell hasonlítanunk. Ez alapértelmezésben egymásba ágyazott (nested) for ciklusok használatát jelenti. A belső ciklusban történik az összehasonlítás, ha az elemek egyeznek (if(tomb1[i] == tomb2[j])), felesleges a belső ciklusnak tovább futnia (break), másként pedig a különbségi elemeket kapjuk meg.

 

Nézzük meg futtatható Java-kódos változatot:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 


public class Main {
    public static void main(String[] args) {
    int[] tomb1 = new int[] {1, 3, 5, 7, 9, 11, 13};
    int[] tomb2 = new int[] {2, 4, 6, 8, 9, 10, 13};
    int[] tombKulonbseg = new int[tomb1.length];
    for(int i = 0; i < tomb1.length; i++) {
        boolean egyenlo = false;
        for(int j = 0; j < tomb2.length; j++) {
            if (tomb1[i] == tomb2[j]) {
                egyenlo = true;
                break;
            }
        }
        if (egyenlo == false) {
            tombKulonbseg[i] = tomb1[i];
            System.out.print(tombKulonbseg[i] + " ");
            }
        }
    }
}

 

Végeredmény:
1 3 5 7 11