2017-09-19 4 views
0
public class DataStructure{ 

    private Listing[] data; // an array of listing objects 

    private int size = 100; 

    private int next = 0; 


DataStructure(){ 

    // allocate the array to 100 elements 

    data = new Listing[100]; 
    } 


DataStructure(int numberofListings){ 

    this.numberofListings= numberofListings; 

    } 


public void addListing(Listing newListing){ 

// how would I add a new Listing object to the array at index next 

} 

public void showAllListing(){ 

// this method will output the values of the data members of all Listing objects 

} 


public static void main(String[] args){ 

    DataStructure obj1= new DataStructure(); 

    Listing l1= new Listing(); 




} 






} 
for(i=0; i<100; i++) { 
data[index]; 
} 

Bonjour à tous,Comment ajouter un nouvel objet Listing à mon tableau à l'index suivant en Java?

J'essaie de comprendre comment je peux ajouter un nouvel objet à mes inscriptions tableau à l'index suivant dans mon programme Java. Devrais-je utiliser pour la boucle et à l'intérieur de cette boucle, devrais-je manuellement définir le nouvel élément à l'index nommé suivant à une position spécifique dans le tableau? Je sais que je devrais faire quelque chose comme l'échantillonnage de pseudocode ci-dessus. Aussi pour tester ce nouvel élément et tous les autres éléments sont à l'intérieur du tableau, je devrais appeler la méthode showAll, non? Est-ce que quelqu'un peut m'aider? Merci!

+0

On ne sait pas ... – davidxxx

+0

@davidxxx est ici mon code Java – dorakta

+0

'data [suivant] = newListing;'? –

Répondre

1

Je vous suggère d'utiliser quelque chose comme ci-dessous:

  • définir la taille avec le constructeur, et ne pas besoin d'enregistrer dans une variable (data.length va vous le donner)
  • lorsque vous ajouter un élément, vous ajoutez juste à côté de la précédente, vous augmentez par un nombre d'éléments

public class DataStructure { 

    private Listing[] data; 

    private int next = 0; 

    DataStructure(int numberofListings) { 
     data = new Listing[numberofListings]; 
     next = 0; 
    } 


    public void addListing(Listing newListing) { 
     if (next < data.length) { 
      data[next] = newListing; 
      next++; 
     }else{               // facultative 
      System.out.println("Invalid operation -> array is full"); // it is 
     }                // juste informative 
    } 

    public void showAllListing() { 
     for (int i = 0; i < next; i++) { //print only not empty boxes, stop to 'next' 
      System.out.println(data[i]); 
     } 
    }  

    public static void main(String[] args) { 
     DataStructure obj1 = new DataStructure(100); 

     Listing l1 = new Listing(); 
     obj1.addListing(l1);    //next = 0; set item to 0 positon, then next = 1 
     obj1.addListing(new Listing()); //next = 1; set item to 1 positon, then next = 2 

     obj1.showAllListing(); 
    } 
} 

Améliorations:

  • quand vous serez plus familier avec Java, vous pouvez jeter un oeil à List<> qui permet la taille dynamique
+0

@ azro-À l'invite de commande, n'est pas censé imprimer Nom: Age: 0 pas deux fois mais 100 fois? – dorakta

+0

@dorakta Si vous remplissez le tableau avec seulement 2 éléments, il ne vous imprimera que 2 fois parce qu'il n'y a que des éléments 'null', mais si vous voulez imprimer 100 fois, remplacez" i azro