title: How to return reference to object as parameter in Java
body: <p>Although I've programmed C, C++ and C# for many years I'm am only superficially familiar with Java.  Helping my Comp Sci son with a Java college project he had a need to return references to two objects from a method in Java.  I suggested returning one as the function value and the 2nd as a reference.  He wasn't sure how to do this.  I did a little research and realized it may not be possible.  My question is in Java what is the common method used when a method needs to return more than one reference to an object.  Here's the specific example in my sons case.  </p>
  
  <pre><code>// This method returns references to the head and tail objects from the passed in 
  // linked list.  The head object is returned as the function value and the tail is 
  // returned as a parameter.
  public Static Node GetHeadTail(List list, Node tail)
  </code></pre>
  
  <p>I realize the above doesn't work in Java since the tail is a reference to node and in Java the reference itself is passed by value.  What is the most common way of dealing with this in Java?  My son's solution was to return an array of 2 Node objects for the function value.  I said that was a poor solution because it doesn't document the meaning of each element of the array.  Another solution would be to create an object that contained the head and tail references.  However in the particular example it was the head pointer that was of most interest and if an object was returned it would create undesired coding overhead for the caller of the method if all they wanted was the head.  </p>