I wanted to sort ArrayList and sorting should be done on copy of ArrayList.
I have tried following but it is sorting an original list and whatever changes i am making on sorted list it is reflecting in original list too.
List <Stud> list = new ArrayList<>();
list.add( new Stud(1,"Sachin") );
list.add( new Stud(2,"Niteen") );
Set <Stud> set = new HashSet<>( list );
Stud s = set.iterator().next();
System.out.println( "S:"+s );
s.setRoll( 10 );
System.out.println( "list: "+list );
System.out.println( "set : "+set );
roll no 10 is set in both arraylist and set, how to avoid that. and it is helpful if you explain why it is happening.