For your purposes here Java's references are not used differently from C's pointers. In fact, the major problem (or benefit, depending on who you ask) pointers have in C is not that they can point to something, but that you can do math with them.
For just the pointing purposes, you can do the same here:
e.setNext(new Element(s));
instead of
e = new Element(s);
(which would just let the variable e
point to a new element, but won't change anything on the old ones).
and you're done.