思路
- 有序的去重比无序的去重效果更好,于是先排序再去重。
- 排序用list.sort,去重则对比当前和后一个字符是否一致,并不断更新size大小防止循环出错。
代码
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
List<Integer> list = new ArrayList<Integer>();
while(sc.hasNextInt())
{
if (sc.hasNextInt()) {
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
if (sc.hasNext())
list.add(sc.nextInt());
}
}
// 排序
list.sort(Comparator.naturalOrder());
// 手写去重
int size = list.size();
for (int i = 0; i < size; i++) {
if ((i + 1) != list.size()) {
if (list.get(i) == list.get(i + 1)) {
list.remove(i + 1);
size = list.size();
i--;
}
}
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
list.clear();
}
sc.close();
}
}