import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class IandT { enum Sport {Baseball, Football,Basketball,Hockey} class athlete { public Sport game; public String name; public String year; //Frosh, Soph, Jr, Senior public int testgrade; //entrance exam grade public athlete(Sport s,String n,String y,int t){ game=s; name=n; year=y; testgrade=t; } } public static void main(String args[]) { new IandT(); } public IandT(){ athlete ss = new athlete(Sport.Baseball, "Dan Smith", "Jr", 95); athlete jj = new athlete(Sport.Basketball, "Joe Johnson", "Jr", 93); athlete rb = new athlete(Sport.Baseball,"Robert Brown", "Soph", 87); athlete bj = new athlete(Sport.Hockey, "Bob Jones", "Jr", 85); athlete jr = new athlete(Sport.Baseball, "Joe Roberts", "Senior", 65); athlete le = new athlete(Sport.Basketball,"Frank Edwards", "Soph", 75); List<athlete> allplayers = new ArrayList<>(); allplayers.add(ss);allplayers.add(jj);allplayers.add(rb); allplayers.add(bj);allplayers.add(jr);allplayers.add(le); List<athlete> allplayers1 = new ArrayList<>(); allplayers1=allplayers; List<athlete> allplayers2 = new ArrayList<>(); allplayers2=allplayers; //////////////////////////////////////////////////// allplayers.stream() .map((s)->{ s.testgrade=100; return s; }) // .forEach((s)->System.out.println("name")) error forEach() is terminal .filter((s) -> s.game==Sport.Baseball) .map((s)->{ s.testgrade=90; return s; }) .forEach((s)->System.out.println("Just closing the Stream.")); for (athlete s:allplayers)System.out.println(s.name+" "+s.testgrade); //////////////////////////////////////////////////////////////// System.out.println(" Without a Terminal"); Stream<athlete> AStream= allplayers1.stream() .map((s)->{ s.testgrade=100; return s; }) .filter((s) -> s.game==Sport.Baseball) .map((s)->{ s.testgrade=90; return s; }); for (athlete s:allplayers1)System.out.println(s.name+" "+s.testgrade); ////////////////////////////////////////////////////////////////////////// System.out.println(" Using AStream"); AStream.filter((s) -> s.game==Sport.Baseball) .forEach((s)->System.out.println(s.name)); //////////////////////////////////////////////////////////////// // // Error void cannot be converted into a Stream /* Stream<athlete> AStream1= allplayers2.stream() .map((s)->{ s.testgrade=100; return s; }) .filter((s) -> s.game==Sport.Baseball) .map((s)->{ s.testgrade=90; return s; }) .forEach((s)->System.out.println("Just closing the Stream Again")); */ } }
![]()