j'ai un Arraylist avec des objetscollection Java: vérifier la propriété d'objet
mon Object Model
class MyData{
public int property;
public String section;
}
et moi avons une fonction comme celui-ci
boolean preselectionDefined;
int position=0;
private String setSection(ArrayList <MyData> myDatas) {
int accountCount = myDatas.size();
String sectionId = "";
if (preselectionDefined) {
//First i check the "section" property of object .
//If i found a object "section" equals "HEAD" i will stop iteration
for (int i = 0; i < accountCount; i++) {
MyData sectionA = myDatas.get(i);
if (sectionA.section.equalsIgnoreCase("HEAD")) {
sectionId = "A";
position=i;
return sectionId;
}
}
//if i didn't find "section" property of object as "HEAD" in any item in list.
//Again i iterate. If i found a object "section" equals "SENIOR" i will stop iteration
for (int i = 0; i < accountCount; i++) {
MyData sectionA = myDatas.get(i);
if (sectionA.section.equalsIgnoreCase("SENIOR")) {
sectionId = "B";
position=i;
return sectionId;
}
}
//if i didn't find "section" property of object as "SENIOR" in any item in list.
//Again i iterate. If i found a object "section" equals "JUNIOR" i will stop iteration
for (int i = 0; i < accountCount; i++) {
MyData sectionA = myDatas.get(i);
if (sectionA.section.equalsIgnoreCase("JUNIOR")) {
sectionId = "C";
position=i;
return sectionId;
}
}
}
// if all the above conditions failed default will happen .
// Default Section Id if it's selection is not defined
sectionId = myDatas.get(position).section;
return sectionId;
}
Je pense que ce code vous aide à comprendre ce que je fais, (je suis vraiment désolé je ne suis pas capable d'exprimer mes besoins en mots). Existe-t-il un meilleur moyen d'atteindre cette fonctionnalité sans ces itérations et vérification?
EDIT: Je ne définis pas l'ID à mes objets dans la liste de tableau. Si la propriété de l'objet satisfait mon besoin je vais arrêter l'itération. Premièrement je vais itérer la liste pour trouver "HEAD" si j'ai trouvé un je vais arrêter mon itération, si n'a pas trouvé "HEAD", i va vérifier "SENIOR" par une répétition de l'itération de la liste entière pour encore une fois. Si je trouve un "SENIOR" dans la liste, je vais arrêter l'itération à ce point. Si ce n'est pas encore je vais vérifier pour vérifier "JUNIOR". et je suis vraiment désolé une chose que j'oublie de mentionner et j'ai besoin de la position de l'objet dans la liste de tableau où s'arrête l'itération.
Ceci est mon scénario. Je pense que mon approche est une mauvaise chose ne quelqu'un a une meilleure idée
Lorsque vous utilisez Java 7, vous pouvez l'écrire encore plus court en utilisant switch/case. – jornane