I need to know that if everything okay in my BTS put and get method I implement  BinaryTree  (K extends Comparable, V) concept to binarySearchTree and I have written get and put method. As far as I check, there is no problem in my code. So now I wonder that are there any problem or weak point in my code? and m,

   public void put(K key, V value) {
        Node newNode = new Node(key, value, null, null);
        Node current = root;
        if (root == null) {
            root = newNode;
            return;
        }
        while (true) {
            int cmd = key.compareTo(current.key);
            if (cmd &gt; 0) {
                if (current.right == null) {
                    current.right = newNode;
                    break;
                } else {
                    current = current.right;
                }
            } else if (cmd &lt; 0) {
                if (current.left == null) {
                    current.left = newNode;
                    break;
                } else {
                    current = current.left;
                }

            } else  {
                current.value = newNode.value;
                break;
            }
        }


  public V get(K key)  {
        Node curr = root;
        if (curr == null) {
            throw new NoSuchElementException("There is no such a element");
        }
        while (true) {
            int cmd = key.compareTo(curr.key);
            if (cmd &gt; 0) {
                curr = curr.right;
            } else if (cmd &lt; 0) {
                curr = curr.left;
            } else {
                return curr.value;
            }
        }
    }



And i check these and it worked

   BinaryTree&lt;Integer,String&gt; binaryTree = new BinaryTree&lt;Integer, String&gt;();

        binaryTree.put(8,"8");
        binaryTree.put(4,"4");
        binaryTree.put(5,"5");
        binaryTree.put(1,"1");
        binaryTree.put(2,"2");
        binaryTree.put(3,"3");
        binaryTree.put(65,"65");
        binaryTree.put(4,"4 (2)");


        System.out.println(binaryTree.get(8));
        System.out.println(binaryTree.get(4));
        System.out.println(binaryTree.get(65));
        System.out.println(binaryTree.get(5));
Since the code is not compiling, it will be hard to do a proper code review.

In my opinion, you should rename the variable cmd in both of the methods, since it can be confusing.

BinaryTree#put method


In my opinion, it's a bad choice to use the range operators (&lt;, >, &lt;=, >=) with the compareTo method; since you always get one of those values (-1, 0 &amp; 1).
I suggest that you check if the values are equals before checking if they are inferior / superior; this will alow you to merge some of the logic of the inferior / superior since they are pretty similar.



if (cmd == 0) {
   current.value = newNode.value;
   break;
}

if (cmd == 1) {
   //[...]
}
```