问题描述:
现有一ArrayList类型集合al,al中含有重复字符串,试将重复字符串去除
思路一:
依据选择排序思想,从头开始遍历al,遍历至倒数第二个元素,每个被遍历元素与其后面所有元素比较,若有重复,删除后面 重复元素
主要代码实现:
ArrayList<String> al = new ArrayList<String>();
al.add("hello");
al.add("world");
al.add("hello");
al.add("world");
al.add("world");
al.add("hello");
al.add("world");
al.add("world");
al.add("world");
al.add("hello");
al.add("world");
al.add("world");
al.add("hello");
al.add("world");
for(int a = 0;a<al.size()-1;a++) {
for(int b = a+1;b<al.size();b++) {
if(al.get(a).equals(al.get(b))) {
al.remove(b);
b--;
}
}
}
System.out.println(al);
思路二:
新建ArrayList类型集合al2,遍历al元素,同时判断,al2中是否包含被遍历元素,如果不包含就添加
主要代码实现:
ArrayList<String> al = new ArrayList<String>();
ArrayList<String> al2 = new ArrayList<String>();
al.add("hello");
al.add("world");
al.add("hello");
al.add("world");
al.add("world");
al.add("hello");
al.add("world");
al.add("world");
al.add("world");
al.add("hello");
al.add("world");
al.add("world");
al.add("hello");
al.add("world");
for(String s:al) {
if(!al2.contains(s)) {
al2.add(s);
}
}
System.out.println(al2);