Voici quelques modifs de ton code qui te permettront, je l'espère, d'avancer (codé en java 1.5 ou supérieur):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
public double Corr_demog(String filePath) throws IOException {
double Corr = 0.0;
// Creation d'un scanner pour lire le fichier
Scanner scanner = new Scanner(new File(filePath)).useDelimiter("\\|");
// La liste des objets lus dans le fichiers
List<MyObject> data = new ArrayList<MyObject>();
while (scanner.hasNext()) {
// Creation d'un nouvel objet
MyObject myObject = new MyObject();
// Valorisation des champ de l'objet
myObject.setId(scanner.next());
myObject.setAge(scanner.nextInt());
myObject.setSexe(scanner.nextInt());
myObject.setProfession(scanner.next());
myObject.setNat(scanner.nextInt());
// Ajout de l'objet à la liste
data.add(myObject);
}
// Pour chaque objet
for (MyObject object : data) {
double Age_au = 0.0;
double Sexe_au = 0.0;
double Nat_au = 0.0;
int Sex_a = 0;
int Sex_u = 0;
int Nat_a = 0;
int Nat_u = 0;
int Age_a = 0;
int Age_u = object.getAge();
Corr = (Age_au + Sexe_au + Nat_au) / 3;
Age_au = 40 - Math.abs(Age_a - Age_u) / 20;
if (Sex_a == Sex_u) {
Sexe_au = 1.0;
} else
Sexe_au = 0.1;
if (Nat_a == Nat_u) {
Nat_au = 2;
} else
Nat_au = 0.1;
}
return Corr;
} |
J'avoue que je n'ai pas compris le traitement que tu fais aux données lues dans le fichier.
Au passage, tu peux sans doute traiter les données au fur et à mesure que tu les lis sans passer par la création d'une liste de MyObject. Cette classe, MyObject n'est en fait qu'un simple agrégat des différents champs que tu lis dans le fichier.

Partager