
Create a Generic Class Assignment Instructions
Overview
It would be nice if we could write a single sort method to sort the elements in an Integer array, a String array or an array of any type that supports ordering (i.e., its elements can be compared). It would also be nice if we could write a single Stack class that could be used as a Stack of integers, a Stack of floating-point numbers, a Stack of Strings or a Stack of any other type. It would be even nicer if we could detect type mismatches at compile time—known as compile-time type safety. Generic methods and generic classes provide the means to create the type-safe general models mentioned above.
Instructions
Write a generic class Pair which has two type parameters—F and S—each representing the type of the first and second element of the pair, respectively. Add set and get methods for the first and second elements of the pair and be sure to demonstrate your setters/getters actually work. (Hint: The class header should be public class Pair<F, S> and the best way to demonstrate your setters is to call them from your constructor(s).)
Write a separate PairTest class to test class Pair. Create 2 Pair types and test your get and set methods on the following pair types:
- Pair<Integer, String> p1 takes Integer and String types as a pair
- Pair<String, Integer> p2 takes String and Integer
PairTest should output enough information to the terminal to show that your generic class Pair is able to set() and get() different types.
intelli java

Implementation of a generic class Pair and a separate class PairTest to test its functionality:
In this implementation, the Pair class has two type parameters F and S, which represent the types of the first and second elements of the pair. The class has getter and setter methods for both elements, and the constructor initializes the elements with the values passed as arguments.
The PairTest class demonstrates how to create pairs of different types using the Pair class, how to get and set the elements of the pairs, and how to output the pairs' values to the console. The main method creates two pairs, p1 and p2, and prints their initial values to the console. It then sets the first element of p1 to 3 and the second element of p2 to 4, and prints the updated values of the pairs to the console. This should demonstrate that the generic class Pair is able to handle different types and that its getter and setter methods are working as expected.
Trending nowThis is a popular solution!
Step by stepSolved in 3 steps with 2 images

- Java Implement Stack using Deque (doubly linked list) You must create an array and the user can insert elements into this array and can only access or remove the newly inserted element from the array. The array is executed using a doubly linked list. The following Project should have these classes: 1. Class Book: The main Node for the deque array where it should have the following attributes besides (next, prev nodes): a) Book Id b) Book Name c) Book Author 2. Class Booklists: Where all the main operations are done. You need to apply these following operations: 1) AddBook() [push(0) : The method Inserts the book object into deque Stack (form the last). 2) RemoveBook() [pop()] : This method extracts an object from the last of the Deque stack and it removes it. If such object does not exist, the method returns null.(from the last) 3) isEmpty() : Return True if deque stack is Empty else return False. 4) DisplayAlIBooks() : Print all the books in the deque stack. 5) getlistsize(): Return…arrow_forwardRPN.java import java.util.Scanner; /** * Reverse Polish Notation calculator. It evaluates * a string with expressions in RPN format and prints * the results. Exampel of a stack use. */public class RPN{ /** * Given a string, return an integer version of * the string. Check if the string contains only * numbers, if so, then does the conversion. If * it does not, it reurns 0. * @param t string with numeric token * @return int version of the numeric token in t */ public int getValue(String t) { if (t.matches("[0-9]+")) { return Integer.parseInt(t); } else { return 0; } } /** * Evaluates a single token in an RPN expression. If it is * a number, it pushes the token to the stack. If it is an * operator, then it pulls 2 numbers from the stack, performs * the operation and pushes back into the stack the result. * @param token to be evaluated * @param stack holding values for…arrow_forwardIn C++, develop an algorithm that adds the value val to a queue object Q. The queue is represented using an array data of size s. The algorithm should assume that the queue is not full. The most recently added item is at index r (rear), and the least recently added item is at index f (front). If the queue is empty, r = f = -1.arrow_forward
- Search is an interesting stack method in Java. Could you provide a small example of how you would program it's functionality in a created stack that you created?arrow_forwardExplore the stack's capabilities when allowed to be itself.arrow_forwardWrite a Java program using Stack class to demonstrate the following activities: Create three empty stacks named stack1, stack2 and stack3 respectively. Push the numbers [6,4,9] into stack1 and [1,2,3] into stack2. Pop the top number of stack1 and top number of stack2 and multiply them. Then, push the multiplication result into stack3. Pop the top number of stack1 and top number of stack2 and divide them. Push the result of division into stack3. Print Stack1, stack2 and stack3. Print the largest number in stack3arrow_forward
- Arrays in Java are objects that use reference semantics. Explain what this means and How it affects modification of arrays. You must start a thread before you can read and reply to other threadsarrow_forwardProject Overview: This project is for testing the use and understanding of stacks. In this assignment, you will be writing a program that reads in a stream of text and tests for mismatched delimiters. First, you will create a stack class that stores, in each node, a character (char), a line number (int) and a character count (int). This can either be based on a dynamic stack or a static stack from the book, modified according to these requirements. I suggest using a stack of structs that have the char, line number and character count as members, but you can do this separately if you wish.Second, your program should start reading in lines of text from the user. This reading in of lines of text (using getline) should only end when it receives the line “DONE”.While the text is being read, you will use this stack to test for matching “blocks”. That is, the text coming in will have the delimiters to bracket information into blocks, the braces {}, parentheses (), and brackets [ ]. A string…arrow_forwardjava /* Practice Stacks and ourVector Write a java program that creates a stack of integers. Fill the stack with 30 random numbers between -300 and +300. A)- With the help of one ourVector Object and an additional stack, reorganize the numbers in the stack so that numbers smaller than -100 go to the bottom of the stack, numbers between -100 and +100 in the middle and numbers larger than +100 in the top (order does not matter) B)- (a little harder) Solve the same problem using only one ourVector object for help C)- (harder) Solve the same problem using only one additional stack as a helper */ public class HWStacks { public static void main(String[] args) { // TODO Auto-generated method stub } }arrow_forward
- Java data strucarrow_forwardPlease help with the following in Java Write a Java program create a stack with elements pushed 1, 2, 3, 4 and 5, removes the middle element. Note that you may use only push(), pop(), peek() and empty() methods of the stack.arrow_forwardOCaml Code: The goal of this project is to understand and build an interpreter for a small, OCaml-like, stackbased bytecode language. Make sure that the code compiles correctly and provide the code with the screenshot of the output. Make sure to have the following methods below: -Push integers, strings, and names on the stack -Push booleans -Pushing an error literal or unit literal will push :error: or :unit:onto the stack, respectively -Command pop removes the top value from the stack -The command add refers to integer addition. Since this is a binary operator, it consumes the toptwo values in the stack, calculates the sum and pushes the result back to the stack - Command sub refers to integer subtraction -Command mul refers to integer multiplication -Command div refers to integer division -Command rem refers to the remainder of integer division -Command neg is to calculate the negation of an integer -Command swap interchanges the top two elements in the stack, meaning that the…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





