昨天遇到的一个小面试题,因为没当时做出来在这里写一下自己的思路:
public static void main(String[] args) {
Integer[] arr= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
List<Integer> list = Arrays.asList(arr);
List<Integer> arrList=new ArrayList<>(list);
test(arrList,0);
}
public static void test(List<Integer> arrList,int i) {
for(int j=0;j<arrList.size();j++) {
i++;
if(i%3==0) {
arrList.set(j, null);
}
}
for(int j=0;j<arrList.size();j++) {
if(arrList.get(j)==null) {
arrList.remove(j);
}
}
System.out.println(arrList);
if(arrList.size()!=1) {
test(arrList,i);
}
}
控制台结果: