Q:

Common elements in two list without complete traversal

How can I find common elements in two lists without actually going through each and every elements in both the lists?  I mean without using the usual traversal method in which we tend to compare one element with the whole list. 
Additional details:
1.the lists are sorted
2.want to find common elements by traversing least number of elements in the second list

A:

List<Integer> list1 = new ArrayList<Integer>();

List<Integer> list2= new ArrayList<Integer>();

List<Integer> list3 = new ArrayList<Integer>(list2);

list3.retainAll(list1);

list3 will have only common elements of list1 and list2. 
This is just one optimized library method which obviously traverses the lists.