Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中生成随机对象_Java_Random_Arraylist_Neo4j_Spring Data Neo4j - Fatal编程技术网

在Java中生成随机对象

在Java中生成随机对象,java,random,arraylist,neo4j,spring-data-neo4j,Java,Random,Arraylist,Neo4j,Spring Data Neo4j,我正在流程建模的背景下对GraphDatabase进行性能评估。 因此,我建立了一个简单的测试用例,跟踪嵌入N4J数据库的简单插入的性能。这是我的测试用例的摘录 @Test public void insertQuants(){ int size =750; /** * create 10 different languages and store them in the ArrayList */ Arr

我正在流程建模的背景下对GraphDatabase进行性能评估。 因此,我建立了一个简单的测试用例,跟踪嵌入N4J数据库的简单插入的性能。这是我的测试用例的摘录

@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);
        }
@测试
公共void insertQuants(){
int size=750;
/**
*创建10种不同的语言并将它们存储在ArrayList中
*/
ArrayList lngs=新的ArrayList();

对于(int i=0;i这不是你的问题,但这是一个问题:Math.random返回0和1之间的双精度。将其乘以9和舍入并不能得到公平分布(0和9的出现频率仅为你希望的一半)。更改:

更像

Random randomGenerator = new Random();
...
int fin = randomGenerator.nextInt(10);

问题不在于随机分配:

int fin = (int) Math.round(Math.random()*9);

Math.random()
返回一个
double
范围:
[0,1)
,乘以9得到:
[0,9)
,四舍五入得到
[0,9]
。正如CPerkins指出的那样,使用
random
看起来更简单,可能更好(因为生成数字0到9的概率与您的方法不一致),但您的随机数生成范围是正确的。问题不在您向我们展示的代码中。可能是在
addModel()
save()

中。它怎么不正确?9*[0,1)=[0,9]。四舍五入得到[0,9]。使用
Random
看起来更简单,但他所拥有的却有效。它从来都不是1。他得到第9个值的频率会比其他值低,因为没有舍入。公平地说,0也是如此。编辑你的帖子。范围绝对是[0,9];尽管如此,这不是他的问题(他一直得到相同的数字)。我建议您进行更多的测试,一旦您对出现的问题有了更准确的了解,如果您无法解决问题,请发布另一个问题。感谢您的快速响应,我将仔细查看实现的addModel/save方法。代码正在工作,只是我在使用neoclipse跟踪存储节点方面缺乏能力在n4j:)中,但我将实现对随机元素的更改,以获得数字的均匀分布
int fin = (int) Math.round(Math.random()*9);