Set<E> Implementierung der Klasse HashSet<E>

Miaming

Mitglied
Mal wieder ich.... wer auch sonst habe eine Verständnisfrage bezüglich Sets und Maps ...

In zwei Behältern sollen jeweils genau n ganze Zahlen gespeichert werden
Innerhalb eines Behälters sollen die Zahlen paarweise verscheiden sein (keine
Doubletten)
Diejenigen Zahlen, welche in beiden Behältern auftauchen, sollen bestimmt werden
Diese Zahlen sollen dann aufsteigend sortiert ausgegeben werden

Dazu gibt es lediglich Fragen die ich beantworten möchte

a) Welche Datenstruktur verwenden Sie?

Als Antwort würde ich liefern: Set <E> und hier ist schon die Frage. Als "Musterlösung" wurde uns die Implentierung von der Klasse "HashSet<E>" gegeben! Meine Frage hierzu an Experten ist nun, ob es ausreicht ob ich die Frage auch mit Set <E> beantworten könnte oder ob es zwingend notwendig ist die Klasse namentlich zu erwähnen?

Ich muss selbst zugeben, dass als Antwort "HashSet <E> natürlich genauer ist. Aber durch die Antwort von Set <E> ist es ja quasi schon gegeben, dass dies HashSet<E> beinhaltet, (also Set<E> implemtieren ja diverse klassen wie linked hashset<E>, treeset<E> und auch eben HashSet<E>

Also worauf ich hinaus will ist die tatsache dass ich nämlich auf anhieb nicht drauf kommen würde dass ich zwei "behälter" als tabellen realisiere. (Dies ist nämlich die eigenschaft der hashsets und nya wie gesagt ist hier nur ne kleine verständnisfrage inwiefern es formal "falsch" wäre mit lediglich "set<E> zu antworten ?
 
Hallo,

ich würde auf eine solche Aufgabenstellung antworten, dass man hier eine Implementierung des Set-Interfaces wie HashSet / TreeSet oder LinkedHashSet verwenden kann. Das Set-Interface bildet die logischen Operationen einer "Menge" ab. In diesem konkreten Fall ist die Schnittmenge (intersection) gesucht.

Siehe auch:
http://www.tutorials.de/algorithmen...java/282965-mengenoperationen-unter-java.html

Java:
package de.tutorials;

import java.util.HashSet;
import java.util.Set;

import static java.util.Arrays.asList;

public class SetExample {
	public static void main(String[] args) {
		Set<Integer> a = new HashSet<>(asList(2,4,6,8,6,7,1,4));
		Set<Integer> b = new HashSet<>(asList(1,3,5,8,5,3,3,4));
		
		Set<Integer> c = new HashSet<>(a);
		c.retainAll(b);
		
		System.out.println(c);
	}
}
Ausgabe:
Code:
[1, 4, 8]

Gruß Tom
 
Hallöchen, ich finde es wirklich nett dass ihr mir (also im allg.) weiter helft! Ist sehr hilfreich für meine Vorbereitung! Rechtherzlichen Dank!
 
Zurück