题目:
1.有如下代码:
public static void main(String[] args) {
ArrayList list = new ArrayList<>();
list.add(“a”);
list.add(“a”);
list.add(“c”);
list.add(“c”);
list.add(“a”);
list.add(“d”);
}
2.定义一个noRepeat()方法,要求对传递过来集合中进行元素去重
public static void noRepeat(ArrayList al){}
public class Demo1 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("a");
list.add("c");
list.add("c");
list.add("a");
list.add("d");
noRepeat(list);
for (String s : list) {
System.out.println(s);
}
}
public static void noRepeat(ArrayList<String> al){
/*
定义一个新集合,将旧集合元素依次存入新集合中,并用contains方法进行判断
若新集合中已有该元素,则旧集合进行remove操作.
只要遍历集合并删除元素,则采用倒序遍历.
*/
//定义一个新集合
ArrayList<String> newal = new ArrayList<>();
for (int i = al.size() - 1; i >= 0; i--) {
if(!newal.contains(al.get(i))){
newal.add(al.get(i));
}else {
al.remove(i);
}
}
}
}