* Inserts the specified key-value pair into the symbol table while maintaining the      * ordering of keys.  Overwrites the old value with the new value if the symbol table      * already contains the specified key.  Deletes the specified key (and its associated      * value) from this symbol table if the specified value is {@code null}.      *      * @param  key the key      * @param  val the value      * @throws IllegalArgumentException if {@code key} is {@code null}      */     public void put(Key key, Value val) {         // TODO         // Change this code to make sure the list remains sorted!         if (key == null) throw new IllegalArgumentException("first argument to put() is null");          if (val == null) {             delete(key);             return;         }         for (Node x = first; x != null; x = x.next) {             if (key.equals(x.key)) {                 x.val = val;                 return;             }         }         first = new Node(key, val, first);         n++;     }   You may not use the keys() method. You are modifying the implementation of the methods, but not their interface or contract.

icon
Related questions
Question

/**
     * Inserts the specified key-value pair into the symbol table while maintaining the
     * ordering of keys.  Overwrites the old value with the new value if the symbol table
     * already contains the specified key.  Deletes the specified key (and its associated
     * value) from this symbol table if the specified value is {@code null}.
     *
     * @param  key the key
     * @param  val the value
     * @throws IllegalArgumentException if {@code key} is {@code null}
     */
    public void put(Key key, Value val) {
        // TODO
        // Change this code to make sure the list remains sorted!
        if (key == null) throw new IllegalArgumentException("first argument to put() is null"); 
        if (val == null) {
            delete(key);
            return;
        }

        for (Node x = first; x != null; x = x.next) {
            if (key.equals(x.key)) {
                x.val = val;
                return;
            }
        }
        first = new Node(key, val, first);
        n++;
    }

 

You may not use the keys() method. You are modifying the implementation of the methods, but not their interface or contract.

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Stack
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, data-structures-and-algorithms and related others by exploring similar questions and additional content below.