У Java 8, мы маем нядаўна ўведзены метад Foreach для перабору калекцый і патокаў у Java . У гэтым кіраўніцтве мы навучымся выкарыстоўваць ForEach () і forEachOrdered () метаду цыкл канкрэтнага збор і струмень.
Java 8 - Foreach итерировать Карту
імпарт java.util.Map; імпарт java.util.HashMap; грамадскі клас Прыклад { дзяржаўнай статычнай сілы асноўных (String [] Арг) { Map <Integer, String> HMAP = новы HashMap <Integer, String> ();hmap.put (1, "малпа");hmap.put (2, "Сабака"); hmap.put (3, "Котка"); hmap.put (4, "Ліён"); hmap.put (5, "Тыгр"); hmap.put (6, "Мядзведзь"); / * Foreach для перабору і адлюстравання кожнага ключа і значэння пароў* З HashMap. * / hmap.forEach ((ключ, значэнне) -> System.out.println (ключ + "-" + значэнне)); / * Foreach итерировать карту і адлюстраваць значэнне канкрэтнага * ключ * / hmap.forEach ((ключ, значэнне) -> { калі (ключ == 4) { System.out.println ( "Значэнне, звязанае з ключом 4 з'яўляецца:" + значэнне); } }); / * Foreach итерировать Карту і адлюстраваць ключ, звязаны з* Канкрэтнае значэнне * /hmap.forEach ((ключ, значэнне) -> { калі ( "Cat" .equals (значэнне)) { System.out.println ( "Key Value, звязаныя з Cat з'яўляецца:" + ключ); }}); } }
выхад:
Java 8 - Foreach итерировать спіс
У гэтым прыкладзе мы ітэрацыя ў ArrayList , выкарыстоўваючы метад Foreach (). Ўнутры Foreach мы выкарыстоўваем лямбда - выразы для друку кожны элемент спісу.
імпарт java.util.List; імпарт java.util.ArrayList; грамадскі клас Прыклад {дзяржаўнай статычнай сілы асноўных (String [] Арг) { Спіс <String> садавіна = новы ArrayList <String> (); fruits.add ( "Яблык"); fruits.add ( "Orange"); fruits.add ( "банан"); fruits.add ( "груша");fruits.add ( "манга"); // лямбда-выраз у метадзе Foreachfruits.forEach (STR-> System.out.println (вул));} }
выхад:
яблык аранжавы бананавы груша манга
Мы можам таксама выкарыстоўваць спасылку метад ў метадзе ForEach () , як гэта:
fruits.forEach (System.out :: Println);
Java 8 - метад Foreach итерировать Паток
У гэтым прыкладзе мы перабор у патоку ў Java з выкарыстаннем метаду Foreach ().
імпарт java.util.List; імпарт java.util.ArrayList; грамадскі клас Прыклад {дзяржаўнай статычнай сілы асноўных (String [] Арг) { Спіс <String> імёны = новы ArrayList <String> (); names.add ( "Мэгі"); names.add ( "Мишонн"); names.add ( "Rick"); names.add ( "Мерла"); names.add ( "Губернатар"); names.stream () // стварэнне патоку .filter (f-> f.startsWith ( "М")) // фільтрацыі імёнаў, якія пачынаюцца з M .forEach (System.out :: Println); // адлюстраванне патоку з выкарыстаннем Foreach} }
выхад:
Мэгі Мишонн дрозд чорны
Java - струмень forEachOrdered () Метад Прыклад
Для паслядоўных патокаў парадак элементаў такога ж, як і парадак у крыніцы, так што вынік будзе тым жа, карыстаецеся Ці вы Foreach або forEachOrdered. Аднак пры працы з паралельнымі патокамі, вы заўсёды хочаце выкарыстоўваць метад forEachOrdered (), калі парадак мае значэнне для вас, так як гэты метад гарантуе, што парадак элементаў будзе такім жа, як крыніца. Давайце разгледзім прыклад, каб зразумець розніцу паміж Foreach () і forEachOrdered ().
імпарт java.util.List; імпарт java.util.ArrayList; грамадскі клас Прыклад {дзяржаўнай статычнай сілы асноўных (String [] Арг) { Спіс <String> імёны = новы ArrayList <String> (); names.add ( "Мэгі");names.add ( "Мишонн"); names.add ( "Rick"); names.add ( "Мерла"); names.add ( "Губернатар"); // Foreach - вынік будзе ў любым парадку System.out.println ( "Друк з выкарыстаннем Foreach"); names.stream () .filter (F-> f.startsWith ( "М")).parallel () .forEach (П-> System.out.println (п)); / * ForEachOrdered - выхад заўсёды будзе ў наступным парадку:* Мэгі, Мишонны, Мерла* / System.out.println ( "Друк з выкарыстаннем forEachOrdered"); names.stream () .filter (F-> f.startsWith ( "М")) .parallel () .forEachOrdered (П-> System.out.println (п));} }
выхад:
Пячатку з выкарыстаннем Foreach дрозд чорны Мэгі Мишонн Пячатку з выкарыстаннем forEachOrdered Мэгі Мишонн дрозд чорны
Пакінуць каментар