If I run this operation on List<Integer> for example, it works as expected (removes first 5 elements), but when I run it on a list of my objects, nothing happens (list stays the same).
list.subList(0, 5).clear();
My class is a pojo that doesn’t implement equals or hashCode, if that matters.
UPDATE:
The implementation I am using is ArrayList, which is returned from Hibernate query. There is nothing to show, really. Sublist doesn’t return an empty list.
Here is an example for those who don’t beleive it works on a list of Integers:
List<Integer> testList = new ArrayList<Integer>();
for(int i=0;i<10;i++) {
testList.add(i);
}
testList.subList(0, 5).clear();
for(int i=0;i<testList.size();i++) {
System.out.print(testList.get(i)+" ");
}
The result is 5 6 7 8 9
UPDATE2: Actually everything is working as expected, don’t know how I couldn’t see that (got confused by numbers of results). Sorry for false alarm 🙂 This question could be deleted.
It works on my machinetm
Produces:
So, the problem is not in
ArrayListnor in your objects.I don’t think
Hibernatereturns a plain oldArrayList( may be it does )Try printing
And let us know if it is in fact an
ArrayList