Generate random-Objekte in Java
im tun, eine Erfolgskontrolle der graphdatabases im Kontext der Prozessmodellierung.
Daher richte ich einen einfachen testcase, welche Spuren die Leistung von einfachen Einsätze in der embedded N4J Datenbank. Dies ist ein Auszug aus meinem testcase.
@Test
public void insertQuants(){
int size =750;
/**
* create 10 different languages and store them in the ArrayList
*/
ArrayList<Language> lngs = new ArrayList<Language>();
for(int i=0; i<10; i++){
String title = "Testsprache " + String.valueOf(i);
String description = "Beschreibung " +String.valueOf(i);
lngs.add(modelservice.createLanguage(title,description));
}
/**
* Create different models and assign them to different
* language objects
*/
for(int i=0; i<size; i++){
String title = "Testmodel " + String.valueOf(i);
//get random between 0 and 9
int fin = (int) Math.round(Math.random()*9);
//fetch random Language object out of ArrayList
Language l = lngs.get(fin);
Model m = modelservice.createModel(l, title);
l.addModel(m);
template.save(l);
}
Methoden createModel in modelservice Rückkehr der spezifischen erstellten Objekt ( Modell oder Sprache ).
Die Frage, die ich bin derzeit konfrontiert ist, dass die zufällige Zuordnung von Sprachen zu den Modellen nicht arbeiten. Das Skript weist jedem Modell ein language-Objekt. In meinem Kopf es sollte eher nach dem Zufallsprinzip zuweisen von Sprachen zu modellieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist nicht mit der zufälligen Vergabe:
Math.random()
gibt einedouble
im Bereich:[0,1)
, multipliziert mit 9 ergibt:[0,9)
und Rundung gibt[0,9]
. Als CPerkins wies darauf hin, mitRandom
Aussehen kann einfacher und ist wahrscheinlich auch besser (da die Wahrscheinlichkeit der Erzeugung von zahlen 0 bis 9 ist nicht einheitlich, mit deiner Methode), aber die random number generation range ist korrekt. Das Problem ist nicht der code, den Sie uns gezeigt haben. Vielleicht ist es inaddModel()
odersave()
.Dies ist nicht Ihr problem, aber es ist eine problem: Mathematik.random liefert einen double zwischen 0 und 1. Die Multiplikation, die durch 9 und Rundung nicht geben Ihnen eine faire Verteilung (null und neun erscheint nur halb so oft, wie Sie möchten). Ändern:
etwas mehr wie
Random
sieht einfacher, aber was er hat funktioniert.