package Ġcom . easy kotlin . learn . study 2 čĊč Ċ import Ġcom . easy kotlin . learn . study 1 . sum č Ċ import Ġcom . sun . org . apache . xpath . internal . operations . Bool čĊč Ċ /** čĊ Ġ* ĠList éĽĨåĲĪ ç±»çļĦ åŁºæľ¬ è¿Ĳç®Ĺ åĩ½æķ° čĊ Ġ*/ č Ċ class ĠList Function Demo Ġ{ čĊčĊĠĠĠ Ġfun Ġlist Function 1 () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// ` any ()` åĪ¤æĸŃ éĽĨåĲĪ èĩ³ å°ĳ æľīä¸Ģä¸ª åħĥç´ł , å¦Ĥæŀľ è¯¥ éĽĨåĲĪ èĩ³ å°ĳ æľīä¸Ģä¸ª åħĥç´ł ï¼Į è¿ĶåĽŀ ` true `ï¼Į åĲ¦åĪĻ è¿ĶåĽŀ ` false `ãĢĤ čĊĠĠĠĠĠĠĠ Ġval Ġlist Flow er : ĠList < String > Ġ= ĠlistOf < String >(" æ°´ ä» Ļ èĬ± ", Ġ" æł Ģ åŃĲ èĬ± ", Ġ" çİ « çĳ ° èĬ± ", Ġ" èį · èĬ± ", Ġ" èİ ² èĬ± ", Ġ" åĲ Ľ åŃĲ åħ° ") čĊĠĠĠĠĠĠĠ Ġvar Ġany : ĠBoolean Ġ= Ġlist Flow er . any () čĊĠĠĠĠĠĠĠ Ġprintln ( any ) čĊčĊĠĠĠĠĠĠĠ Ġvar Ġlist City : ĠMutable List < String > Ġ= Ġmutable ListOf < String >(); čĊĠĠĠĠĠĠĠ Ġany Ġ= Ġlist City . any () čĊĠĠĠĠĠĠĠ Ġprintln ( any ) čĊčĊĠĠĠĠĠĠĠ Ġ// éĽĨåĲĪ ä¸Ń èĩ³ å°ĳ æľīä¸Ģä¸ª åħĥç´ł åĮ¹éħį è° ĵ è¯į åĩ½æķ° åıĤæķ° ` predicate : Ġ( T ) Ġ-> ĠBoolean `ï¼Į è¿ĶåĽŀ true ï¼Į åĲ¦åĪĻ è¿ĶåĽŀ false čĊĠĠĠĠĠĠĠ Ġany Ġ= Ġlist Flow er . any Ġ{ Ġit . contains (" æ¢ ħ èĬ± ") Ġ} čĊĠĠĠĠĠĠĠ Ġprintln ( any ) čĊčĊĠĠĠĠĠĠĠ Ġany Ġ= Ġlist Flow er . any () Ġ{ Ġit . contains (" çİ « çĳ ° ") Ġ} čĊĠĠĠĠĠĠĠ Ġprintln ( any ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġlist Function 2 () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// all ( predicate : Ġ( T ) Ġ-> ĠBoolean ) ĠåĪ¤æĸŃ éĽĨåĲĪ ä¸ŃçļĦ åħĥç´ł æĺ¯åĲ¦ éĥ½ æ»¡è¶³ æĿ¡ä»¶ čĊĠĠĠĠĠĠĠ Ġ// å½ĵ ä¸Ķ ä»ħ å½ĵ è¯¥ éĽĨåĲĪ ä¸Ń æīĢæľī åħĥç´ł éĥ½ æ»¡è¶³ æĿ¡ä»¶ æĹ¶ ï¼Į è¿ĶåĽŀ true ï¼Ľ åĲ¦åĪĻ éĥ½ è¿ĶåĽŀ false čĊĠĠĠĠĠĠĠ Ġval Ġlist Flow er : ĠMutable List < String > Ġ= Ġmutable ListOf < String >(" æ°´ ä» Ļ èĬ± ", Ġ" æł Ģ åŃĲ èĬ± ", Ġ" çİ « çĳ ° èĬ± ", Ġ" èį · èĬ± ", Ġ" èİ ² èĬ± ", Ġ" åħ° èĬ± ") čĊĠĠĠĠĠĠĠ Ġvar Ġis All : ĠBoolean Ġ= Ġlist Flow er . all Ġ{ Ġit . contains (" èĬ± ") Ġ} čĊĠĠĠĠĠĠĠ Ġprintln ( list Flow er ) čĊĠĠĠĠĠĠĠ Ġprintln (" is All =${ is All }") čĊčĊĠĠĠĠĠĠĠ Ġlist Flow er . add (" åĲ Ľ åŃĲ åħ° ") čĊĠĠĠĠĠĠĠ Ġprintln ( list Flow er ) čĊĠĠĠĠĠĠĠ Ġis All Ġ= Ġlist Flow er . all Ġ{ Ġit . contains (" èĬ± ") Ġ} čĊĠĠĠĠĠĠĠ Ġprintln (" is All =${ is All }") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġlist Function 3 () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ è¯¥ éĽĨåĲĪ æ²¡æľī ä»»ä½ķ åħĥç´ł ï¼Į è¿ĶåĽŀ true ï¼Į åĲ¦åĪĻ è¿ĶåĽŀ false ãĢĤ čĊĠĠĠĠĠĠĠ Ġval Ġlist City : ĠMutable List < String > Ġ= Ġmutable ListOf < String >() čĊĠĠĠĠĠĠĠ Ġvar Ġis None : ĠBoolean Ġ= Ġlist City . none () čĊĠĠĠĠĠĠĠ Ġprintln ( list City ) čĊĠĠĠĠĠĠĠ Ġprintln (" is None =${ is None }") čĊčĊĠĠĠĠĠĠĠ Ġlist City . add (" å¤© æ´ ¥ ") čĊĠĠĠĠĠĠĠ Ġprintln ( list City ) čĊĠĠĠĠĠĠĠ Ġis None Ġ= Ġlist City . none () čĊĠĠĠĠĠĠĠ Ġprintln (" is None =${ is None }") čĊčĊĠĠĠĠĠĠĠ Ġlist City . add (" æľĽ äº¬ ") čĊĠĠĠĠĠĠĠ Ġlist City . add (" åĮĹäº¬ ") čĊĠĠĠĠĠĠĠ Ġlist City . add (" æĪĲ éĥ½ ") čĊĠĠĠĠĠĠĠ Ġprintln ( list City ) čĊčĊĠĠĠĠĠĠĠ Ġ// none ( predicate : Ġ( T ) Ġ-> ĠBoolean ) åĪ¤æĸŃ éĽĨåĲĪ ä¸Ń æīĢæľī åħĥç´ł éĥ½ ä¸į æ»¡è¶³ æĿ¡ä»¶ čĊĠĠĠĠĠĠĠ Ġ// å½ĵ ä¸Ķ ä»ħ å½ĵ éĽĨåĲĪ ä¸Ń æīĢæľī åħĥç´ł éĥ½ ä¸į æ»¡è¶³ æĿ¡ä»¶ æĹ¶ è¿ĶåĽŀ true ï¼Į åĲ¦åĪĻ è¿ĶåĽŀ false čĊĠĠĠĠĠĠĠ Ġis None Ġ= Ġlist City . none Ġ{ Ġit . contains (" äº¬ ") Ġ} čĊĠĠĠĠĠĠĠ Ġprintln (" is None =${ is None }") čĊčĊĠĠĠĠĠĠĠ Ġis None Ġ= Ġlist City . none Ġ{ Ġit . contains (" å·ŀ ") Ġ} čĊĠĠĠĠĠĠĠ Ġprintln (" is None =${ is None }") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġlist Function 4 () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// count () Ġ è®¡ç®Ĺ éĽĨåĲĪ ä¸Ń åħĥç´ł çļĦ ä¸ªæķ° čĊĠĠĠĠĠĠĠ Ġval Ġlist Animal : ĠList < String > Ġ= ĠlistOf < String >(" é¸ Ń åŃĲ ", Ġ" å°ı çĭ Ĺ ", Ġ" å°ı çĮ « ", Ġ" å°ı çĮ ª ") čĊĠĠĠĠĠĠĠ Ġvar Ġcount : ĠInt Ġ= Ġlist Animal . count () čĊĠĠĠĠĠĠĠ Ġprintln ( list Animal ) čĊĠĠĠĠĠĠĠ Ġprintln (" count =${ count }") čĊčĊĠĠĠĠĠĠĠ Ġ// count ( predicate : Ġ( T ) Ġ-> ĠBoolean ) Ġ è®¡ç®Ĺ éĽĨåĲĪ ä¸Ń æ»¡è¶³ æĿ¡ä»¶ çļĦ åħĥç´ł çļĦ ä¸ªæķ° čĊĠĠĠĠĠĠĠ Ġval Ġlist City : ĠMutable List < String > Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable ListOf < String >(" æŃ¦ æ±ī ", Ġ" åĮĹäº¬ ", Ġ" åįĹ äº¬ ", Ġ" å¹¿ å·ŀ ", Ġ" æ¢ § å·ŀ ", Ġ" éĴ ¦ å·ŀ ", Ġ" æŁ ³ å·ŀ ", Ġ" æī ¬ å·ŀ ", Ġ" å¤§ åº Ĩ ", Ġ" å¤§ è¿ŀ ", Ġ" å¤§ çĲĨ ") čĊĠĠĠĠĠĠĠ Ġprintln ( list City ) čĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġlist City . count Ġ{ Ġit . contains (" äº¬ ") Ġ} čĊĠĠĠĠĠĠĠ Ġprintln (" count =${ count }") čĊčĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġlist City . count Ġ{ Ġit . contains (" å·ŀ ") Ġ} čĊĠĠĠĠĠĠĠ Ġprintln (" count =${ count }") čĊčĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġlist City . count Ġ{ Ġit . contains (" æ´ ¥ ") Ġ} čĊĠĠĠĠĠĠĠ Ġprintln (" count =${ count }") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġlist Function 5 () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// reduce ä»İ ç¬¬ä¸Ģ é¡¹ åĪ° æľĢåĲİ ä¸Ģ é¡¹ è¿Ľè¡Į ç´ ¯ è®¡ è¿Ĳç®Ĺ čĊĠĠĠĠĠĠĠ Ġval Ġlist Lo ve : ĠList < String > Ġ= ĠlistOf < String >(" æĪĳä»¬ ", Ġ" éĥ½ çĪ± ", Ġ" æĳ ¸ é±¼ ") čĊĠĠĠĠĠĠĠ Ġprintln ( list Lo ve ) čĊĠĠĠĠĠĠĠ Ġval Ġreduce : ĠString Ġ= Ġlist Lo ve . reduce () Ġ{ Ġtotal , Ġnext Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" total =${ total }, next =${ next }") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Ġ+ Ġnext čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġprintln ( reduce ) čĊčĊĠĠĠĠĠĠĠ Ġ// reduce Right ä»İ æľĢåĲİ ä¸Ģ é¡¹ åĪ° ç¬¬ä¸Ģ é¡¹ è¿Ľè¡Į ç´ ¯ è®¡ è¿Ĳç®Ĺ čĊĠĠĠĠĠĠĠ Ġval Ġreduce Right : ĠString Ġ= Ġlist Lo ve . reduce Right () Ġ{ Ġpre , Ġtotal Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" total =${ total }, pre =${ pre }") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpre Ġ+ Ġtotal čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġprintln ( reduce Right ) čĊčĊĠĠĠĠĠĠĠ Ġ// fold ( initial : ĠR , Ġoperation : Ġ( acc : ĠR , ĠT ) Ġ-> ĠR ): ĠR Ġ å¸¦ åĪĿå§ĭ åĢ¼çļĦ reduce čĊĠĠĠĠĠĠĠ Ġval Ġfold : ĠString Ġ= Ġlist Lo ve . fold (" åľ¨ æ·± åľ ³ çļĦ ") Ġ{ Ġtotal , Ġnext Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Ġ+ Ġnext čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġprintln ( fold ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġfold Right : ĠString Ġ= Ġlist Lo ve . fold Right (" åľ¨ å¤© æ´ ¥ çļĦæĹ¶åĢĻ ") Ġ{ Ġpre , Ġtotal Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpre Ġ+ Ġtotal čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġprintln ( fold Right ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġlist Function 6 () Ġ{ čĊĠĠĠĠĠĠĠ Ġ// max Ġ ãĢģ min ĠæŁ¥è¯¢ æľĢå¤§ ãĢģ æľĢå°ı çļĦ åħĥç´ł ï¼Į ç©º éĽĨ åĪĻ è¿ĶåĽŀ null čĊĠĠĠĠĠĠĠ Ġval Ġlist F ruit : ĠList < String > Ġ= ĠlistOf < String >(" apple ", Ġ" m ango ", Ġ" ban ana ", Ġ" orange ", Ġ" ch erry ") čĊĠĠĠĠĠĠĠ Ġvar Ġmax : ĠString ? Ġ= Ġlist F ruit . max () čĊĠĠĠĠĠĠĠ Ġprintln ( max ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġmin : ĠString ? Ġ= Ġlist F ruit . min () čĊĠĠĠĠĠĠĠ Ġprintln ( min ) čĊčĊĠĠĠĠĠĠĠ Ġ// Ġmax By ( selector : Ġ( T ) Ġ-> ĠR ): ĠT ? čĊĠĠĠĠĠĠĠ Ġ// Ġmin By ( selector : Ġ( T ) Ġ-> ĠR ): ĠT ? čĊĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ åĩ½æķ° æĺłå°Ħ ç»ĵæŀľ çļĦ æľĢå¤§ åĢ¼ ãĢģ æľĢå°ı åĢ¼ å¯¹åºĶçļĦ éĤ£ ä¸ª åħĥç´ł çļĦåĢ¼ ï¼Į å¦Ĥæŀľ æ²¡æľī åĪĻ è¿ĶåĽŀ null čĊĠĠĠĠĠĠĠ Ġval Ġmax By : ĠString ? Ġ= Ġlist F ruit . max By Ġ{ Ġit . startsWith (" man ") Ġ} čĊĠĠĠĠĠĠĠ Ġprintln ( max By ) čĊčĊĠĠĠĠĠĠĠ Ġvar Ġmin By : ĠString ? Ġ= Ġlist F ruit . min By Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . endsWith (" e ") čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġprintln (" min By =${ min By }") čĊĠĠĠĠĠĠĠ Ġval Ġa : ĠBoolean Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġval Ġb : ĠBoolean Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġval Ġresult : ĠBoolean Ġ= Ġa Ġ> Ġb čĊĠĠĠĠĠĠĠ Ġprintln (" true > false :${ result }") čĊčĊĠĠĠĠĠĠĠ Ġmin By Ġ= Ġlist F ruit . min By Ġ{ Ġit . contains (" an ") Ġ} čĊĠĠĠĠĠĠĠ Ġprintln (" min By =${ min By }") čĊčĊĠĠĠĠĠĠĠ Ġ// sum By ( selector : Ġ( T ) Ġ-> ĠInt ): ĠInt Ġèİ·åıĸ åĩ½æķ° æĺłå°Ħ åĢ¼çļĦ æĢ» åĴĮ čĊĠĠĠĠĠĠĠ Ġ// åı¯ä»¥ çľĭ åĩº ï¼Į è¿Ļä¸ª sum By åĩ½æķ° ç®Ĺ åŃĲ ï¼Į ç´ ¯ åĬł åĻ¨ sum åĪĿå§ĭ åĢ¼ä¸º 0 ï¼Į è¿ĶåĽŀ åĢ¼ æĺ¯ Int ãĢĤ čĊĠĠĠĠĠĠĠ Ġ// å®ĥçļĦ åħ¥ åıĤ selector æĺ¯ä¸Ģä¸ª åĩ½æķ° ç±»åŀĭ ( T ) Ġ-> ĠInt ï¼Į ä¹Łå°±æĺ¯ è¯´ è¿Ļä¸ª selector ä¹Łæĺ¯ è¿ĶåĽŀ Int ç±»åŀĭçļĦ åĩ½æķ° ãĢĤ čĊĠĠĠĠĠĠĠ Ġvar Ġsum By : ĠInt Ġ= Ġlist F ruit . sum By Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠindexOf Ġ= Ġlist F ruit . indexOf ( it ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠindexOf Ġ* ĠindexOf čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġprintln ( sum By ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġlist Number : ĠList < Int > Ġ= ĠlistOf < Int >( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 ) čĊĠĠĠĠĠĠĠ Ġsum By Ġ= Ġlist Number . sum By Ġ{ Ġit Ġ} čĊĠĠĠĠĠĠĠ Ġprintln ( sum By ) čĊčĊĠĠĠĠĠĠĠ Ġsum By Ġ= Ġlist Number . sum By Ġ{ Ġit Ġ* Ġit Ġ+ Ġ 1 2 Ġ} čĊĠĠĠĠĠĠĠ Ġprintln ( sum By ) čĊĠĠĠ Ġ} č Ċ }