given specifications. You can use one type, or a mix of the listed types of data structures for message storage. Specifically, it should be one data structure per word type( verb, subject, etc.), but you can choose to use a HashMap for canned messages and maybe ArrayLists for the other data structuresor use Arrays for all of them. Methods and Instance variables a. Method shoutOutCannedMessage() loops through the data structure that stores the canned messages first to display all canned messages and allows the user to select one canned message. b. The method shoutOutCannedMessage() will return the selected message string. c. Your shoutOutRandomMessage() method should use a random number generator that selects one word from each data structure to form a random message. The random number generated should not exceed the bounds of your data. In other words, if you only have 5 words in a data structure, the random number generated should not be an index that has no word stored. d. The method shoutOutRandomMessage() should return a randomly generated message string in accordance with specifications, in the form: Subject- Verb- Adjective- Object- Adverb( for example, ― You read hard books quickly ‖). e. Use the MyClone introduction() method to introduce your clone to the virtual world by displaying a greeting, your full name, and anything else you would want to say. f. MyClone class should include instance variables( at least firstName and lastName) that are made private and have associated getters( accessors)