import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class Main {
public static void main(String[] aa) {
Set<Integer> set = new TreeSet<Integer>();
List<Integer> list = new ArrayList<Integer>();
for (int i = -3; i < 3; i++) {
set.add(i);
list.add(i);
}
for (int i = 0; i < 3; i++) {
set.remove(i);
list.remove(i);
}
System.out.println(set + " " + list);
}
}
答案是:
[-3, -2, -1] [-2, 0, 2]
Set倒是容易理解,List卻忘記了移出之後右邊的數據會往左移動。
這是個很好的題目,一個是要明白不同的數據結構對數據的存儲方式,一個是理解java的自動裝箱機制,再一個就是知道兩個數據結構的remove方法參數是不同的,set的remove移出的自動裝箱之後的對象,而list的remove方法參數是int類型。
教訓,一定要仔細。