Hallo ich habe folgende Aufgabenstellung für die Uni zu erfüllen und habe ein paar Fragen.
Die Fragen die sich nun stellen sind, wie befülle ich mit Hilfe der Random-Methode das HashSet-Objekt mit Zufallszahlen ohne Duplikate? Und wie transformiere ich anschließend mein HashSet-Objekt in ein List-Objekt? Ich würde mich sehr über eine Antwort freuen.
Natürlich habe ich eine Lösung aber diese wurde über ein weiteres List-Objekt gelöst und nicht über das retunieren von res.
MfG Jonas
Implementiere die Methode List<Integer>
createSortedListOfUniqueRandoms(int n, ListType type, long seed),
die eine Liste der Länge n erzeugt. In der Liste sollen nur nicht-negative
Integer-Werte zwischen 0 und MAX VALUE-1 aufsteigend sortiert verwaltet
werden. Die einzelnen Integer-Werte sollen keine Duplikate enthalten.
Ob eine ArrayList oder eine LinkedList erzeugt wird, wird über den ListType
type festgelegt.
Man soll den Zufallszahlengenerator
random verwenden und mit dem seed-Wert initialisieren.
Zudem soll man die Klasse HashSet verwenden, um n Werte ohne Duplikate
zu erzeugen. Transformieren Sie das HashSet-Objekt in ein List-Objekt.
Abschließend soll die Liste sortiert werden.
Java:
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class BinaryListSearch {
public enum ListType {
ARRAYLIST, LINKEDLIST
}
/*
* Maximal zulässiger Wert in der Liste
*/
public static final int MAX_VALUE = 500000;
/**
* Erzeugt eine Liste mit ganzen Zahlen, aufsteigend sortiert.
*
* @param n Listengröße.
* @param type Listentyp, ob ArrayList oder LinkedList.
* @param random
* @param Seed für Zufallszahlengenerator
*
* @return Liste mit ganzen, positiven Zufallszahlen.
*/
public List<Integer> createSortedListOfUniqueRandoms(int n, ListType type, long seed) {
//Zufallszahlengenerator
Random random = new Random(seed);
//Menge zum Verwalten der Zahlen
Set<Integer> ints = new HashSet<Integer>();
// Ergebnisliste
List<Integer> res = null;
if (type == ListType.ARRAYLIST) {
res = new ArrayList<Integer>();
} else if (type == ListType.LINKEDLIST) {
res = new LinkedList<Integer>();
}
// TODO Implementieren
return res;
}
}
Die Fragen die sich nun stellen sind, wie befülle ich mit Hilfe der Random-Methode das HashSet-Objekt mit Zufallszahlen ohne Duplikate? Und wie transformiere ich anschließend mein HashSet-Objekt in ein List-Objekt? Ich würde mich sehr über eine Antwort freuen.
Natürlich habe ich eine Lösung aber diese wurde über ein weiteres List-Objekt gelöst und nicht über das retunieren von res.
Java:
public List<Integer> createSortedListOfUniqueRandoms(int n, ListType type, long seed) {
//Zufallszahlengenerator
Random random = new Random(seed);
//Menge zum Verwalten der Zahlen
Set<Integer> ints = new HashSet<Integer>();
// Ergebnisliste
List<Integer> res = null;
if (type == ListType.ARRAYLIST) {
res = new ArrayList<Integer>();
} else if (type == ListType.LINKEDLIST) {
res = new LinkedList<Integer>();
}
// TODO ab hier bitte implementieren
int i = 0, j = 0;
while ( i <= n ) //n=25
{
j++;
int b = random.nextInt();
boolean bRet;
if (b >= 0 && b < MAX_VALUE-1)
{
bRet = ints.add(b);
if(bRet)
i++;
}
}
List<Integer> list = new ArrayList<Integer>(ints);
Collections.sort(list);
return list;
}
MfG Jonas
Zuletzt bearbeitet: