标题: 求List重复元素的算法? [打印本页] 作者: 黑马薛有义 时间: 2011-7-25 15:06 标题: 求List重复元素的算法? 有一个list,装的全是String,有什么高效的算法知道其中是否有重复元素,不要求找出位置和元素。
List<String> list = new ArrayList<String>();
使用嵌套的for循环可以解决,但是当list很大的时候,效率会很低,还有什么高效的算法吗?作者: 匿名 时间: 2011-7-25 15:27
for (String s : list) {
if (list.lastIndexOf(s) == list.indexOf(s)) {
list2.add(s); }
}作者: 匿名 时间: 2011-7-25 15:28
或者用hashset作者: 匿名 时间: 2011-7-25 16:13
Set set = new HashSet(list);
list=new ArrayList(set);作者: 匿名 时间: 2011-7-25 19:54
set集合的特点就是不能存储重复元素,所以用set就可以,然后比较一下set集合于list集合的size就知道有没有重复的了.
另外,我想了一个奇怪点的办法,可以求出重复了哪些元素以及这些元素各自重复了多少次:[code=java]public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("ab");
list.add("bcd");
list.add("ded");
list.add("ede");
list.add("bcd");
list.add("ede");
list.add("bcd");