Your task is to write methods in JAVA for a program that analyzes an arbitrary

Your task is to write methods in JAVA for a program that analyzes an arbitrary number of strings passed as arguments on the command line. Like with many large projects, some of the code has been written for you, and you are not allowed to change it. Instead, you are constrained to filling in certain methods, that must operate to fulfill not only individual-method unit tests, but tests that cover larger swaths of code.As an example, consider that a user calls the program from the terminal without any arguments:$ java edu.wit.cs.comp1050.PA3aPlease supply at least one argument at the command line.That is, you will be writing verification that there is at least one argument supplied! Now let’s consider a valid example:$ java edu.wit.cs.comp1050.PA3a hello world!Arguments (2, no duplication): hello world!Length: total=11, avg=6Shortest (5): Longest (6): Average (6): Now you can see the program in action, but perhaps not all the pieces, so another:$ java edu.wit.cs.comp1050.PA3a I see a little silhouetto of a man Scaramouche Scaramouche will you do the Fandango Thunderbolt and lightning very very fright’ning meArguments (22, has duplication): I see a little silhouetto of a man Scaramouche Scaramouche will you do the Fandango Thunderbolt and lightning very very fright’ning meLength: total=113, avg=5Shortest (1): first=, last=Longest (11): first=, last=Average (5): noneThe program produces outputs that counts the overall and average length (rounded to the nearest integer), checks for duplication, and outputs the first and last arguments that have the shortest, longest, and average lengths.The following methods have been implemented completely, and you are NOT to change them:·        main: validates input, produces program output·        firstOfLength/lastOfLength: call a common utility method (that you WILL implement) to find an element of a particular length·        firstLongestElement/lastLongestElement: call a common utility method (that you WILL implement) to find the longest element·        firstShortestElement/lastShortestElement: call a common utility method (that you WILL implement) to find the shortest elementThe remaining methods must be implemented by you, as guided by the Javadoc and JUnit tests.