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

I need help with two things. First I\'d like someone to check over my code for t

ID: 3924515 • Letter: I

Question

I need help with two things. First I'd like someone to check over my code for the 3 //TODO statements below to verify that they're correct

public static HashSet<Integer> doHashSetInsertMedian(int numItems) {
       System.out.print("doHashSetInsertMedian: ");
       HashSet<Integer> set = new HashSet<>();

       // TODO Write code that adds integers 0 through (numItems - 1)
       // to set, inside a loop.

       for(int i=0; i<numItems-1; i++){
       set.add(i);
       }
      
       // TODO Write code that removes integer (numItems / 2)
       // from set.

   int median = numItems / 2;
   set.remove(median);
      
       long startTime = getTimestamp();

       // TODO Write code that adds integer (numItems / 2)
       // to set.

       set.add(median);
      
       long endTime = getTimestamp();
       long totalTime = endTime - startTime;
       System.out.println(totalTime);
      
       return set;
   }

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

Second I just need someone to write an example code for the 2nd //TODO comment

public static LinkedHashSet<Integer> doLinkedHashSetRemoveMedian(int numItems) {
       System.out.print("doLinkedHashSetRemoveMedian: ");
       LinkedHashSet<Integer> set = new LinkedHashSet<>();

       // TODO Write code that adds integers 0 through (numitems - 1)
       // to set.

       long startTime = getTimestamp();

       // TODO Write code that removes the median element
       // from set, repeatedly until the set is empty.
  
       long endTime = getTimestamp();
       long totalTime = endTime - startTime;
      
       System.out.println(totalTime);
      
       return set;
   }

Explanation / Answer

PART 1

Hi friend, first part you have done correctly except a small mistake. In first TODO you missed '=' sign:

public static HashSet<Integer> doHashSetInsertMedian(int numItems) {
System.out.print("doHashSetInsertMedian: ");
HashSet<Integer> set = new HashSet<>();
// TODO Write code that adds integers 0 through (numItems - 1)
// to set, inside a loop.
for(int i=0; i<=numItems-1; i++){
set.add(i);
}
  
// TODO Write code that removes integer (numItems / 2)
// from set.
int median = numItems / 2;
set.remove(median);
  
long startTime = getTimestamp();
// TODO Write code that adds integer (numItems / 2)
// to set.
set.add(median);
  
long endTime = getTimestamp();
long totalTime = endTime - startTime;
System.out.println(totalTime);
  
return set;
}

PART 2:

public static LinkedHashSet<Integer> doLinkedHashSetRemoveMedian(int numItems) {
System.out.print("doLinkedHashSetRemoveMedian: ");
LinkedHashSet<Integer> set = new LinkedHashSet<>();
// TODO Write code that adds integers 0 through (numitems - 1)
// to set.
for(int i=0; i<=numitems-1; i++)
set.add(i);

long startTime = getTimestamp();
// TODO Write code that removes the median element
// from set, repeatedly until the set is empty.
int median;
int current_size = set.size();
while(set.size() > 0){
current_size = set.size(); //getting current size of set
median = current_size/2; // finding current median
set.remove(median); // removing median
}
  
long endTime = getTimestamp();
long totalTime = endTime - startTime;
  
System.out.println(totalTime);
  
return set;
}