黑马程序员技术交流社区
标题:
List删除重复元素Demo
[打印本页]
作者:
sven556677
时间:
2015-8-23 10:12
标题:
List删除重复元素Demo
自己写的,缺点是从前往后删除,而且每次循环重新生成subList感觉比较浪费资源,请高手斧正。
package com.cn.reviev;
import java.util.*;
/**
* List删除重复元素
* 注:list的contain方法底层也是用的equals方法,本例用的是String,对于其他对象,则重写equals方法。
*/
public class ArrayListRemoveSame {
public static void main(String[] args) {
ArrayList<String> al=new ArrayList<String>();
al.add("fooABC");
al.add("fooABD");
al.add("fooABE");
al.add("fooABD");
al.add("fooABC");
removeSame(al);//调用函数删除
System.out.println(al);
}
private static void removeSame(ArrayList<String> al) {
ListIterator<String> lit=al.listIterator();
while(lit.hasNext()){
String s=lit.next();
int index=lit.previousIndex()+1;//获得当下元素的角标
if(al.subList(index,al.size()).contains(s)){//如果从这个元素开始到结尾的子List中包含有相同元素,则可以删除
lit.remove();//这里必须用ListIterator
}
System.out.println(s);
}
}
}
复制代码
作者:
sven556677
时间:
2015-8-23 10:28
晕~一看后面的内容,老师也写了一个。返回的是新List
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2