Inhaltsverzeichnis ⇒ Java Algorithm Library-Artery-Sample
Q01_07.java
package jp.avaj.lib.algo;
import java.util.ArrayList;
import java.util.List;
import jp.avaj.lib.test.L;
/**
* List<Person>Finden Sie das Durchschnittsalter von.
*
*・ Zieldaten von Person(Alter)Sie müssen ArCreator zum Abrufen definieren.
*-In der ersten Methode wird die Konvertierungsmethode implementiert, um das Alter zu extrahieren..
*-Diese Methode ist jedoch problematisch, da für jedes zu extrahierende Feld eine Implementierung erstellt wird..
*-In der zweiten Methode wird ein universeller ArCreatorByName erstellt und der Feldname angegeben..
*・ Es kann verhindert werden, dass die Anzahl der ArCreator-Implementierungen unnötig zunimmt..
*
*/
public class Q01_07 {
public static void main(String[] args) throws Exception {
List<Person> list = createList();
//Definition von ArCreator-Erster Weg
ArCreator<Person,Integer> creator = new ArCreator<Person,Integer>() {
@Override
public Integer convert(Person obj) throws Exception {
return obj.getAge();
}
};
//Finden Sie den Durchschnittswert
L.p(ArList.avg(list,creator)+"");
//Definition von ArCreator-Zweite Methode
creator = new ArCreatorByName<Person,Integer>("age");
//Finden Sie den Durchschnittswert
L.p(ArList.avg(list,creator)+"");
}
/**Erstellen Sie persönliche Informationen*/
private static List<Person> createList() {
List<Person> list = new ArrayList<Person>();
list.add(new Person("a",25));
list.add(new Person("b",30));
list.add(new Person("c",28));
list.add(new Person("d",22));
list.add(new Person("e",38));
return list;
}
/**Klasse für persönliche Informationen(Nur Name und Alter..) */
static class Person {
public Person(String name,int age) {
this.name = name;
this.age = age;
}
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
}
Das Ergebnis ist wie folgt.
result.txt
28.6
28.6
Recommended Posts