This questiоn invоlves the аnаlysis оf weаther data. The following WeatherData class has an instance variable, temperatures, which contains the daily high temperatures recorded on consecutive days at a particular location. The class also contains methods used to analyze that data. You will write two methods of the WeatherData class. public class WeatherData { /** Guaranteed not to be null and to contain only non-null entries */ private ArrayList temperatures; /** * Cleans the data by removing from temperatures all values that are less than * lower and all values that are greater than upper, as described in part (a) */ public void cleanData(double lower, double upper) { /* to be implemented in part (a) */ } /** * Returns the length of the longest heat wave found in temperatures, as described in * part (b) * Precondition: There is at least one heat wave in temperatures based on threshold. */ public int longestHeatWave(double threshold) { /* to be implemented in part (b) */ } // There may be instance variables, constructors, and methods that are not shown. } Write the cleanData method, which modifies the temperatures instance variable by removing all values that are less than the lower parameter and all values that are greater than the upper parameter. The order of the remaining values in temperatures must be maintained. For example, consider a WeatherData object for which temperatures contains the following. The three shaded values shown would be removed by the method call cleanData(85.0, 120.0). The following shows the contents of temperatures after the three shaded values are removed as a result of the method call cleanData(85.0, 120.0). Complete method cleanData. /** * Cleans the data by removing from temperatures all values that are less than * lower and all values that are greater than upper, as described in part (a) */ public void cleanData(double lower, double upper)