Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

plz i really nead help today :\'( Implement a map using a ArrayList from the jav

ID: 3768764 • Letter: P

Question

plz i really nead help today :'(

Implement a map using a ArrayList from the java collection framework

For Key/Value Pair you may

assume the following

The key is an integer, which can be generated as a random integer from 0 -> 99999

Value is a random name generated by concatenating two names selected randomly from an array of names (you should create an array of 50 names)

Your first Task is an array of m transaction with the following conditions

m is the number of transactions in a Test suite, you will test for m = 1000, 10000, 100000, 1000000

Transaction will have two fieldsTransaction type which can be

0 indicating a put call, 70% of all transactions

1 indicating a get call, 20% of all transactions.

2 indicating a remove call, 10% of all transactions.

The second field is a key value pair generated randomly as explained above.

Your Solution should have a minimum of the following classes

Pairattributes

key : int,

Value: String

TransactionAttributes

opType : int (0, 1, 2),

pair: Pair

Static final String names[]: a list of 50-100 names

Methods

Transaction generateTestCase(): This methods creates a random transactions with a probability of 70% to be a put, 20% a get, or 10% remove, and the pair with a random key from 0 -> 99999 and a random name

Transaction [] generateTestSuite(int m): this method generates m random transactions a returns them as an array of size m.

TestDriveMethods

TestRun(int m): this method first generate a TestSuite of size m then runs it against a map implemented using an arraylist, a hashmap, an AVL maps, you should measure the run time for each run and print it.

Position: an Interface

Node: a binary tree node

BinaryTree: a BinaryTree Interface

AVLtree : implements a BinaryTree

Explanation / Answer

import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Random; public class MyHashMap { class Container { Object key; Object value; public void insert(Object k, Object v) { this.key = k; this.value = v; } } private Container c; private List<Container> recordList; public MyHashMap() { this.recordList = new ArrayList<Container>(); } public void put(Object k, Object v) { this.c = new Container(); c.insert(k, v); // check for the same key before adding for (int i = 0; i < recordList.size(); i++) { Container c1 = recordList.get(i); if (c1.key.equals(k)) { // remove the existing object recordList.remove(i); break; } } recordList.add(c); } public Object get(Object k) { for (int i = 0; i < this.recordList.size(); i++) { Container con = recordList.get(i); // System.out.println("k.toString():"+k.toString()+"con.key.toString()"+con.key.toString()); if (k.toString() == con.key.toString()) { return con.value; } } return null; } public static void main(String[] args) { MyHashMap hm = new MyHashMap(); for (int i = 0; i < 99999; i++) { hm.put(String.valueOf(i), getString()); } } public static String getString() { String a[] = { "ad", "vafv", "vfrg", "yht", "tyty", "ter", "trg", "tger", "ad", "vafv", "vfrg", "yht", "tyty", "ter", "trg", "tger", "ad", "vafv", "vfrg","ad", "vafv", "vfrg", "yht", "tyty", "ter", "trg", "tger", "ad", "vafv", "yht", "tyty", "ter", "trg", "tger", "ad", "vafv", "vfrg", "yht", "tyty", "ter", "trg", "tger" }; int min = 1; int max = 50; Random r = new Random(); int i1 = r.nextInt(max - min + 1) + min; return a[i1]; } public static void transact(String key) { switch (key) { case "0": System.out.println("70% transactionssssssssssss"); break; case "1": System.out.println("20% transactionssssssssssss"); break; case "2": System.out.println("10% transactionssssssssssss"); break; default: break; } } }import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Random; public class MyHashMap { class Container { Object key; Object value; public void insert(Object k, Object v) { this.key = k; this.value = v; } } private Container c; private List<Container> recordList; public MyHashMap() { this.recordList = new ArrayList<Container>(); } public void put(Object k, Object v) { this.c = new Container(); c.insert(k, v); // check for the same key before adding for (int i = 0; i < recordList.size(); i++) { Container c1 = recordList.get(i); if (c1.key.equals(k)) { // remove the existing object recordList.remove(i); break; } } recordList.add(c); } public Object get(Object k) { for (int i = 0; i < this.recordList.size(); i++) { Container con = recordList.get(i); // System.out.println("k.toString():"+k.toString()+"con.key.toString()"+con.key.toString()); if (k.toString() == con.key.toString()) { return con.value; } } return null; } public static void main(String[] args) { MyHashMap hm = new MyHashMap(); for (int i = 0; i < 99999; i++) { hm.put(String.valueOf(i), getString()); } } public static String getString() { String a[] = { "ad", "vafv", "vfrg", "yht", "tyty", "ter", "trg", "tger", "ad", "vafv", "vfrg", "yht", "tyty", "ter", "trg", "tger", "ad", "vafv", "vfrg","ad", "vafv", "vfrg", "yht", "tyty", "ter", "trg", "tger", "ad", "vafv", "yht", "tyty", "ter", "trg", "tger", "ad", "vafv", "vfrg", "yht", "tyty", "ter", "trg", "tger" }; int min = 1; int max = 50; Random r = new Random(); int i1 = r.nextInt(max - min + 1) + min; return a[i1]; } public static void transact(String key) { switch (key) { case "0": System.out.println("70% transactionssssssssssss"); break; case "1": System.out.println("20% transactionssssssssssss"); break; case "2": System.out.println("10% transactionssssssssssss"); break; default: break; } } }