如何在Java中创建包含随机生成元素的对象列表?

如何在Java中创建包含随机生成元素的对象列表?,java,arrays,object,random,Java,Arrays,Object,Random,创建具有随机值的对象并将其存储在数组中 我正在为一个海上船舶操作项目工作。为了测试一些程序,我一直在尝试生成一个包含不同元素(如名称、序列号、一些布尔值和其他整数)的随机船舶列表。 以下是一个例子: tfu Serial Number: 8011148632 Maximum Cargo Size: 14 Maximum Ship Speed: 23 Vessel is on export lane Ship Class 3 我开发了一个随机生成数据的系统,但只知道如何将数据存储在字符串变量中

创建具有随机值的对象并将其存储在数组中

我正在为一个海上船舶操作项目工作。为了测试一些程序,我一直在尝试生成一个包含不同元素(如名称、序列号、一些布尔值和其他整数)的随机船舶列表。 以下是一个例子:

tfu
Serial Number: 8011148632
Maximum Cargo Size: 14
Maximum Ship Speed: 23
Vessel is on export lane
Ship Class 3

我开发了一个随机生成数据的系统,但只知道如何将数据存储在字符串变量中,然后作为列表。 列表存储:

      String shipDe = randomName + "\n"
             + "Serial Number: " + serial + "\n"
             + "Maximum Cargo Size: " + cargoSize + "\n"
             + "Maximum Ship Speed: "+ shipSpeed + "\n"
             + located + "\n"
             + classeses + "\n";

      return shipDe;
这里我列出了一个字符串列表

public String[] liste(int shipN) {
        int okay = shipN;
        String[] lister= new String[okay];

        for (int i = 0; i < okay; i++){
            randomShip shippi = new randomShip();

         String hello = shippi.shipDetails();
         lister[i] = hello;

        }

        return lister;
对于我的项目,我需要将所有数据分开,以便我可以搜索具有特定货物大小、等级或速度的船舶列表,然后检查船舶的位置。我不希望数据存储为字符串,但可以存储为一个列表对象。

为了解决这个问题,我首先向shipDetails对象类添加了一个setter。这有助于将来添加您自己的船只

 public shipDetails bigSetter(String n, int s, int cS, int sS, int l, String cL){
        shipDetails aShip = new shipDetails();
        aShip.randomName = n;
        aShip.serial = s;
        aShip.cargoSize = cS;
        aShip.shipSpeed = sS;
        aShip.located = l;
        aShip.classLevel = cL;
        String locateds = "";

        if(l == 1){
            locateds = "Docked Vessel";
        } else if (l == 2){
            locateds = "On Import Lane";
        } else if (l == 3){
            locateds = "On Export Lane";
        }
        aShip.shipSummary = n + "\n"
                + "Serial Number: " + s + "\n"
                + "Maximum Cargo Size: " + cS + "\n"
                + "Maximum Ship Speed: "+ sS + "\n"
                + locateds + "\n"
                + cL + "\n";

        return aShip;

    }
如果我只想要随机答案,我可以将所有内容设置为randomGenerator类的输出。当然,我将这些类分开,但是randomGenerator类生成了一个随机名称、序列和其他特征,并返回了一个通过bigSetter生成的shipDetails对象,但是这不是我列出的地方。 相反,我创建了一个单独的类来生成一系列随机的细节。这将运行for循环并调用randomGenerator类a来生成shipDetails对象。shipDetails随后存储到数组列表中。这是重复的随机次数

import java.util.ArrayList;

public class listOfShips {

    public ArrayList<shipDetails> list(){

        int requestedNumber = (int)(Math.random() *(30 - 10 + 1) + 10);;


        ArrayList<shipDetails> listo = new ArrayList<shipDetails>();

        for(int i = 0; i <= requestedNumber; i++){
            randomShipMaker random = new randomShipMaker();
            shipDetails randomy = random.randomShip();

            listo.add(randomy);

        }

        return listo;
    }

}
然后我可以访问list类来获取随机shipDetails的ArrayList,我可以使用我的项目来搜索、添加和删除这些信息


-安德鲁

欢迎来到SO!请不要直接在问题中添加解决方案。如果您的问题将被重新打开,您可以在答案部分添加您的解决方案。在此期间,你应该仔细阅读之前制定的其他问题。