Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- Klasse IntSet
- @author Lando Busch 4603944 Gruppe 4a
- */
- public class IntSet {
- private int[] set;
- public IntSet(int ... pValues)
- {
- int[] lNew = new int[pValues.length];
- int lCount = 0;
- for (int x = 0; x < pValues.length; x++) // Jedes Element von pValues durchlaufen
- {
- boolean lContains = false;
- for(int y = x; y >= 0; y--) // Prüfen ob dieses Element schonmal vorkam
- {
- if (x != y && pValues[x] == pValues[y])
- {
- lContains = true;
- break;
- }
- }
- if (!lContains) // Wenn es noch nicht vorkam, dann in neues Array hinzufügen
- {
- lNew[lCount] = pValues[x];
- lCount++;
- }
- }
- set = new int[lCount];
- for (int a = 0; a < lCount; a++) // Zum Schluss set befüllen mit den Daten aus dem neuen Array
- {
- set[a] = lNew[a];
- }
- }
- public int max()
- {
- if (set.length == 0)
- return 0;
- int lMax = set[0]; // Variable in der jeweils der größtmögliche Wert festgehalten wird
- if (set.length > 1)
- {
- for (int i = 0; i < set.length; i++)
- {
- if (lMax < set[i]) // Wenn aktuelles Array-Element größer als der bisher größte Wert in der Variable, dann ..
- {
- lMax = set[i]; // .. wird Variable zu dem Wert gesetzt
- }
- }
- }
- return lMax;
- }
- public int min() // das gleiche wie max nur das auf kleiner statt größer geprüft wird
- {
- if (set.length == 0)
- return 0;
- int lMin = set[0];
- if (set.length > 1)
- {
- for (int i = 0; i < set.length; i++)
- {
- if (lMin > set[i])
- {
- lMin = set[i];
- }
- }
- }
- return lMin;
- }
- public int sum()
- {
- int lSum = 0;
- for (int i = 0; i < set.length; i++) // Durch die Liste gehen und alle Werte auf die Variable draufaddieren
- {
- lSum += set[i];
- }
- return lSum;
- }
- public int avg() // Summe / Anzahl
- {
- if (set.length == 0)
- return 0;
- int lSum = sum();
- return Math.round(lSum / set.length);
- }
- public void addAll(IntSet pSet)
- {
- int lCount = set.length + pSet.set.length;
- int[] lValue = new int[lCount];
- lCount = 0;
- for (int x = 0; x < set.length; x++) // Liste mit den Werten des ersten IntSet befüllen
- {
- lValue[x] = set[x];
- }
- for (int y = 0; y < pSet.set.length; y++) // Liste mit den Werten des zweiten Intset befüllen, ..
- {
- boolean contains = false;
- for (int a = 0; a < lValue.length; a++) // Prüfen ob pSet.set aktuelles Element in lValue vorhanden ist
- {
- if (lValue[a] == pSet.set[y])
- {
- contains = true;
- lCount++;
- break;
- }
- }
- if (!contains) // Wenn nicht vorhanden
- {
- lValue[set.length + y - lCount] = pSet.set[y]; // hinzufügen
- }
- }
- set = new int[set.length + pSet.set.length - lCount]; // Zum Schluss set wieder befüllen
- for (int b = 0; b < set.length; b++)
- {
- set[b] = lValue[b];
- }
- }
- public void print()
- {
- for (int x = 0; x < set.length; x++) // Durch liste gehen und ausgeben
- {
- System.out.println(set[x]);
- }
- }
- public void retainAll(IntSet pSet)
- {
- int lCount = 0;
- for (int i = 0; i < set.length; i++) // Durch erste Liste durchlaufen
- {
- for (int x = 0; x < pSet.set.length; x++) // Für jedes element in der ersten Liste prüfen ob es dieses in der zweiten Liste gibt
- {
- if (set[i] == pSet.set[x]) // Wenn ja dann Zähler erhöhen und in set den Wert speichern
- {
- set[lCount] = set[i];
- lCount++;
- }
- }
- }
- int[] lNumbs = new int[lCount];
- for (int y = 0; y < lCount; y++) // Neues Array befüllen (dieses ist kleiner als set) und Werte von set übertragen
- {
- lNumbs[y] = set[y];
- }
- set = lNumbs;
- }
- public void removeAll(IntSet pSet)
- {
- int lCount = 0;
- int[] lElements = new int[set.length];
- for (int i = 0; i < set.length; i++) // Erstes Array durchlaufen und prüfen ob Element im zweiten Array vorhanden
- {
- boolean lContains = false;
- for (int x = 0; x < pSet.set.length; x++)
- {
- if (set[i] == pSet.set[x])
- {
- lContains = true;
- break;
- }
- }
- if (!lContains) // Wenn nicht vorhanden, dann in neues Array reinkopieren und Zähler erhöhen
- {
- lElements[lCount] = set[i];
- lCount++;
- }
- }
- set = new int[lCount];
- for (int y = 0; y < lCount; y++) // set Array befüllen mit den neuen Array Daten
- {
- set[y] = lElements[y];
- }
- }
- }
- und die 2. klasse
- /**
- Klasse Program
- @author Lando Busch 4603944 Gruppe 4a
- */
- public class Program {
- public static void main(String[] args) {
- IntSet lNumber = new IntSet(512, 15 ,8 ,15, 512, 89, 15);
- System.out.println(lNumber.max()); // Gibt 512 aus
- System.out.println(lNumber.min()); // Gibt 8 aus
- System.out.println(lNumber.sum()); // Gibt 624 aus
- System.out.println(lNumber.avg()); // Gibt 156
- System.out.println("-------VereinigungsMenge------");
- vereinigungsMenge(lNumber);
- System.out.println("-------SchnittMenge------");
- schnittMenge(lNumber);
- System.out.println("-------entfernteMenge------");
- entferneMenge(lNumber);
- }
- private static void schnittMenge(IntSet pFirst) // Code für Schnittmenge ausgelagert
- {
- IntSet lAddNumbers = new IntSet(178,15,5, 89, 11 ,8);
- pFirst.retainAll(lAddNumbers);
- pFirst.print();
- }
- private static void vereinigungsMenge(IntSet pFirst) // Code für Vereinigungsmenge ausgelagert
- {
- IntSet lAddNumbers = new IntSet(512,178,89,15);
- pFirst.addAll(lAddNumbers);
- pFirst.print();
- }
- private static void entferneMenge(IntSet pFirst)
- {
- IntSet lEntferneMenge = new IntSet(15, 178, 2, 15, 89);
- pFirst.removeAll(lEntferneMenge);
- pFirst.print();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement