Question: // TODO create a method to return the outstanding fees from all accounts group by the media type. // You should make use of Java

// TODO create a method to return the outstanding fees from all accounts group by the media type. // You should make use of Java 8 Streams and lambda expression to do this - return map // public Map getTotalFeesGroupByMedia() { // TIP: // declare a map collection that will store the total fees you generate - check out the generic types // for your map as per the method signature. // // Check MyMedia class and explore the getters you can call for each media type. // For each subscriber, you need to calculate the total fees for each media type. As you traverse your // subscriber map, you will then call the list of each media, and calculate the total. // // For e.g., if you have 5 subscribers, you will have 4 list of Movie, Book and Song. So you need to // calculate the total fees for all movies, and then all books and lastly, all songs. // // *SECRET TIP: // With Java Stream, lambda expression and method reference, you can do this in 3 lines // (one for each media type). Use subscriber stream to get media, then invidividual list can be // processed as stream (all in a single pipeline) - but don't get hung up on it, use anything that you're // comfortable with ! -> the read tip :) // Map mapMedia = new HashMap(); } // TODO create a method to return the total number of items from all accounts using Java 8 streams and lambda expression. // group by the media type. Use the programming logic (idioms) that you've implemented in the getTotalFeesGroupByMedia() // method as a source of inspiration in completing this method. // public Map getCountGroupByMedia() {

// TIP: // This will be exactly like the getTotalFeesByGroupMedia() method above. You just need to return the count // instead of the total sum. You will return three values (in a map) for each media type. The generic types // assigned to the map collection are a good clue to figure out the operators that you will use to construct // your stream pipeline/ // // *SECRET TIP: // Don't reinvent the wheel, use what you already created above - just replace the operator // Map mapMedia = new HashMap(); }

// TODO create a method to return the outstanding fees from all

Task 02: Quick Fire (5 marks) The media streaming business is very dynamic. Changes occur every second (alright, not every second, but you get the point). Most of the utility methods that you've implemented in Task 01 are essential to for administrative purpose. However, we need to do more, especially in this data oriented business. We need to have some rapid fire methods to pull vital information from our streaming program. There will be loads, but we must be realistic (the task is only worth 5 marks). Therefore, we are going to look at the two most important information to have in-hand, so the management would be happy to get rapid response from us. 1 - You are required to complete the getTotalFeesGroupByMedia () method to provide the current outstanding fees from all subscribers group by the media type, e.g., given the data of all subscriber for that particular month, the method will return the total fees for Movies, for Books, and for Songs. This information can help the management to decide, which media is the most profitable, and they can decide for possible adjustment in the future, i.e., maybe buying more movies for the library (to keep things fluid). Similar to Task 01, you need to use Java 8 Streams, lambda expression and (or) method references to complete this task. There are getters provided in the MyMedia class to help facilitate this operation. Read the comments in the method body for details. The solution is simple, but make sure you cater your solution to the current structure of the program (i.e., check what is available in the codes, and work it out from there) = [3 marks]. 2 - You are required to complete the getCountGroupByMedia () method to retum the number of items available inside each subscriber media library, group by the media type, e.g., Given the library of subscriber A as (Movie 3, Book 2, Song - 3), and subscriber B as (Movie 2, Book - 1, Song - 2), your method should return (Movie 5, Book 3, Song 5 ) - the total count for each media for all subscribers. This will give the management an opportunity to evaluate the popularity of item in respect to the media type - again, this can be a factor to determine future media offerings (this time based on user consumption). As a good programmer, you should be able to adapt the programming idiom that you've previously applied in getTotalFeesGroupByMedia () method. The logic is essential the same, and you only need to call a different intermediate and terminal operators for your streams. There is no point of re-inventing the wheels (even the marks allocated here reflect. that = [2 Marks ]. Notes: Don't overthink the solution - it is not as complex as it sounds, and do check the comments provided in the method body (this is important that I have to repeat it here, again). You can use the test function program to evaluate your method, similar to lab assignment 01. Do remember, that whenever possible, always use the simple approach to complete the methods

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!