随机智能汽车数据生成器

时间:2019-04-23 05:42:36

标签: java

我正在尝试在当前代码中生成随机数据集。我已经阅读了有关如何创建随机项目选择的数据示例,但是没有一个示例会向我展示如何添加多个项目列表以一次为所有项目生成随机打印行。

我从列表中查看了随机项目中的引用。但大多数只显示一项。我在使用整数的随机样本中查看了极客,但我需要生成的不仅仅是整数,还需要从项目中选择字符串。

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
import java.util.Random;

public class SmartCarDataGenerator
{

  public static void main(String[] args)
  {
/*
Author
System
Subsystem
Methodology
Driver behavior detection

GDi
Lpi
Variable 
Sensor data
Defenition

GDi_Speed
GDi_RPM
GDi_Ignitor_sensor
GDi_MAP_sensor
GDi_Front_oxygen_sensor
GDi_Injection_Time_Sensor_1
GDi_Fuel_rail_pressure_sensor
GDi_Knock_sensor_1
GDi_Knock_sensor_2
GDi_Knock_sensor_3
GDi_Knock_sensor_4
GDi_Speed

LPi_Speed
LPi_RPM
LPi_Ignitor_sensor
LPi_MAP_sensor
LPi_Front_oxygen_sensor
LPi_Injection_Time_Sensor_1
LPi_Fuel_rail_pressure_sensor
LPi_Knock_sensor_1
LPi_Knock_sensor_2
LPi_Knock_sensor_3
LPi_Knock_sensor_4
Lpi_Speed

N
Mean
SD
Min
Max

GDi_Variable
GDi_Coeffifient
GDi_pValue
GDi_Result

LPi_Variable
LPi_Coeffifient
LPi_pValue
LPi_Result

*/

    Random rand = new Random();

    List<String> author = new ArrayList<String>();
    author.add("Beatrice");
    author.add("Wang");
    author.add("Luo");
    author.add("Han");
    author.add("Cesar");
    author.add("Zhang");
    author.add("Hu");
    author.add("Lee");
    author.add("Chung");

    List<String> system = new ArrayList<String>();
    system.add("Engine");
    system.add("Battery");
    system.add("Steering");
    system.add("Brakes");
    system.add("Suspension");
    system.add("Muffler");
    system.add("FanRadiator");
    system.add("Radiator");
    system.add("AirConditinor");
    system.add("SoundSystem");

    List<String> subsystem = new ArrayList<String>();
    subsystem.add("OBD");
    subsystem.add("CVDP");
    subsystem.add("BGA");
    subsystem.add("EPSG");
    subsystem.add("LithiumBattery");
    subsystem.add("ElectricPowerSteering");
    subsystem.add("AntiLockBrakes");
    subsystem.add("suspension");

    List<String> methodology = new ArrayList<String>();
    methodology.add("DataDriven");
    methodology.add("ModelBased");

    List<String> driverBehaviorDetection = new ArrayList<String>();
    driverBehaviorDetection.add("Fatigue");
    driverBehaviorDetection.add("Drowsiness");
    driverBehaviorDetection.add("Distraction");
    driverBehaviorDetection.add("AccelerationHabit");
    driverBehaviorDetection.add("Texting");
    driverBehaviorDetection.add("Mad");
    driverBehaviorDetection.add("Happy");
    driverBehaviorDetection.add("RoadRage");
    driverBehaviorDetection.add("MedicalCondition");

    List<String> variable_car_condition = new ArrayList<String>();
    variable_car_condition.add("Normal");
    variable_car_condition.add("Abnormal");

    int variable_driver_id = rand.nextInt(100000);

    List<String> speedMode = new ArrayList<String>();
    speedMode.add("Idling");
    speedMode.add("Driving");

  }

}

我想收到有关如何生成打印行的建议,这些行将使用循环函数或调用1000个整个List来生成数据的类来添加添加的所有List项。我还想学习如何从列表中创建一个具有多个值的随机选择。

1 个答案:

答案 0 :(得分:0)

您的驾驶员ID行不正确。其他所有行都在设置可能值的范围。该ID行确定了从十万个值的域中对值的特定选择。

将该ID行移动到新的for循环中。在该循环内,您从各个可能性域中选择一个特定值。将每种值的结果选择传递给Car类的构造函数或构造函数。将所得的Car对象添加到诸如ListSet之类的集合中。然后继续循环以制造和添加另一辆汽车以及另一辆汽车,等等。

顺便说一句,仅生成随机数并不是分配唯一标识符的正确方法。您需要跟踪使用的号码,以避免重复,避免多次分配相同的号码。或创建一个递增的序号。或改用UUID。所有这些都已在Stack Overflow上讨论了很多次,因此请搜索更多信息。