حلقة "for" للتكرار على التعداد في Java


Answers

التعداد # القيم ():

 for (Direction d : Direction.values()) {
     System.out.println(d);
 }
Question

لدي enum في جافا للاتجاهات الأساسية والوسيطة:

public enum Direction {
   NORTH,
   NORTHEAST,
   EAST,
   SOUTHEAST,
   SOUTH,
   SOUTHWEST,
   WEST,
   NORTHWEST
}

كيف يمكنني كتابة حلقة for والتي تتكرر خلال كل من هذه القيم enum ؟




تيارات

قبل Java 8 ، نحتاج إلى طباعة القيم باستخدام حلقة for ، مثل:

for (Direction dir : Direction.values()) {
            System.out.println(dir);
}

ولكن في Java 8 يمكننا أيضًا الاستفادة من lambda و streams ( Tutorial ):

Stream.of(Direction.values()).forEach(System.out::println);



Java8

Stream.of(Direction.values()).forEach(System.out::println);

من Java5 +

for ( Direction d: Direction.values()){
 System.out.println(d);
}



إذا كنت لا تهتم بالترتيب ، فيجب أن يعمل هذا الأمر:

Set<Direction> directions = EnumSet.allOf(Direction.class);
for(Direction direction : directions) {
    // do stuff
}



هذا هو كيفية التكرار على التعداد:

private static void iterateEnumValues() {
        System.out.println("Iterating over Direction enum");
        for(Direction direction : Direction.values())
        {
            System.out.println("Enum = " + direction);
        }
}

لمعرفة المزيد حول عمليات التعداد الشائعة ، راجع هذا: كيفية استخدام Enums في java




Links