如何在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!请不要直接在问题中添加解决方案。如果您的问题将被重新打开,您可以在答案部分添加您的解决方案。在此期间,你应该仔细阅读之前制定的其他问题。