On ne sait pas à moi comment vous stockez actuellement les données que vous lisez, mais ce que vous devez faire est de lire les données dans une liste d'un objet de données:
public class Dwelling
{
int Id;
String name;
int price;
}
stocker ensuite ces derniers dans certaines données structure. Je pense qu'une HashMap de ArrayLists peut être pratique pour vos besoins:
HashMap<String, ArrayList<Dwelling>> types = new HashMap<String, ArrayList<Dwelling>>();
// Loop through records in file
while(moreRecords)
{
// Read the next record into a data object
DwellingType d = getNextDwelling();
// Store the record in the data structure
ArrayList<Dwelling> list = types.get(d.getName());
if (list == null)
{
list = new ArrayList<Dwelling>();
types.put(d.getName(), list);
}
list.add(d);
}
Pour accéder à la liste des enregistrements d'un type particulier, vous souhaitez simplement appeler HashMap.get()
:
ArrayList<Dwelling> list = types.get("Apartment");
alors vous pouvez boucle à travers les enregistrements pour faire ce que vous devez faire:
int totalPrice = 0;
for (Dwelling d : list)
{
totalPrice += d.price;
}
Est-ce Java? (basé sur 'instanceof'). C'est plutôt difficile de comprendre la question. Cela peut répondre à votre question - 'instanceof' est pour vérifier si un objet est d'un certain type, vous ne pouvez pas l'utiliser pour comparer des chaînes les unes avec les autres (toutes les chaînes ont le même type -' String' (en Java)). Mais vous pouvez utiliser 'yourString.equals (" house ")'. – Dukeling
Oh désolé d'oublier d'énoncer la langue, oui c'est Java. et je suis familier avec FileReader, BufferedReader et en utilisant Scanner pour lire les fichiers le long de while-loop pour lire les lignes. ne sais pas à propos de yourString.equals ("house") – Abdelrahman
Il existe de nombreux guides, à la fois sur la lecture de fichiers et instanceof. Il n'y a pas besoin de poser cette question. Ça ne va pas aider tout le monde. – Val