题目描述
有一个整数序列(可能有重复的整数),现删除指定的某一个整数,输出删除指定数字之后的序列,序列中未被删除数字的前后位置没有发生改变。
输入描述
第一行输入一个整数(0≤N≤50)。
第二行输入N个整数,输入用空格分隔的N个整数。
第三行输入想要进行删除的一个整数。
输出描述
输出为一行,删除指定数字之后的序列。
示例1
输入
6
1 2 3 4 5 9
4
输出
1 2 3 5 9
代码实现
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.valueOf(in.readLine());
String[] strs = in.readLine().split(" ");
String num = in.readLine();
List<String> list = Arrays.asList(strs);
List<String> newlist = new ArrayList(list);
/*
for(String item : list) {
if(item.equals(num)){
list.remove(item);//都是坑!
break;
}
}
*/
//使用迭代器删除指定数字
Iterator<String> iterator = newlist.iterator();
while(iterator.hasNext()) {
if(num.equals(iterator.next())){
iterator.remove();
}
}
outputList(newlist);
}
private static void outputList(List<String> newlist) {
for(int i=0;i<newlist.size();i++) {
System.out.print(newlist.get(i)+" ");
}
}
}