Storing object into an array - Java

Justin C picture Justin C · Nov 2, 2015 · Viewed 17.6k times · Source

I am relatively new to Java and I have taken some light courses on it. I am trying to emulate an exercise that I had a while back and I am having some trouble.

I have two classes. One is taking in data and the other is storing it.

public class Car{

public Car(String name, String color)
{
     this.name = name,
     this.color = color
}

How can I store this into the array (not an array list) that I created in this class:

public class CarDatabase {

Car[] carList = new Car[100];

public CarDatabase()
{
    // System.out.println("test");
}

public void createAccount(String name, String color)
{        
// this is where I am having trouble


    for (int i = 0; i < carList.length; i++)
    {

    System.out.println("Successfully created: " + name + 
            "." + "Color of car: " + color);
    break;


    }
}

I don't have a main method yet but I will need one later on to for example, PRINT out this array and that is what I can't wrap my head around - how do I store DATA/OBJECTS into the "CarDatabase" array so I can call methods with it later (instead of just being able to print it)?

Any help would be appreciated. Thanks!

Answer

aandis picture aandis · Nov 2, 2015

Not really sure what you are trying to achieve but I'll give it a go.

You could modify your CarDatabase class like so -

public class CarDatabase {

  Car[] carList = new Car[100];
  int carsStored;

  // No need for a constructor since we don't need any initialization.
  // The default constructor will do it's job.

  public void createAccount(String name, String color) {
    carList[carsStored++] = new Car(name, color);
  }
}

And your main method could look like -

public static void main(String[] args) {
  CarDatabase database = new CarDatabase();
  database.createAccount("Lambo", "Red");
  database.createAccount("Punto", "White");

  // To loop through your database, you can then do
  for(int i = 0; i < database.carList.length; i++) {
    Car car = database.carList[i];
    // Now you can call methods on car object.
  }
}

Hope that helps.