日期:2014-05-18  浏览次数:20702 次

list集合去重复内容。
for (int i = 0; i < pylist.size(); i++) {

for (int j = i+1; j < pylist.size(); j++) {
if(pylist.get(i).equals(pylist.get(j))){
System.out.println("pylist.get(i):"+pylist.get(i)+"|||"+list.get(i)+","+dlist.get(i)+"~~~"+"pylist.get(j):"+pylist.get(j)+"|||"+list.get(j)+","+dlist.get(j)+"---i:"+i+"---j:"+j);

}
}
}

list中有多条重复的,,下面是查出来的(一部分)后面的i和j。
---i:94---j:105
---i:94---j:106
---i:94---j:108
---i:94---j:2261
--------------------------------------
---i:105---j:106
---i:105---j:108
---i:105---j:2261
想要的结果就是之前查出来j=105了,,后面的i=105就不要显示出来了,,重复了。。。菜鸟求帮助搞了一早上 - -
------解决方案--------------------
List<String> list=new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("c");
list.add("a");

for (String o : new LinkedHashSet<String>(list)) {
System.out.println(o);
}

------解决方案--------------------
public static void test(List<String> list)
{
Map<String, Integer> map = new HashMap<String, Integer>();
for (String s : list)
{
if (map.containsKey(s))
{
map.put(s, map.get(s) + 1);
} else {
map.put(s, 1);
}
}
}

自己百度下hashmap的用法就知道了
------解决方案--------------------

RemoveCollectionDoubleValuesTest.java

package com.armslee.test;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

public class RemoveCollectionDoubleValuesTest {

/**
 * @param Lavender
 */
public static void main(String[] args) {
List<String> l = new ArrayList<String>();
l.add("A");
l.add("A");
l.add("B");
l.add("B");
l.add("5");
l.add("C");
l.add("1");
l.add("C");
l.add("5");
getDoubleValues(l);

}

/**
 * 通过List来去重
 * 
 * @param l
 */
private static void getDoubleValues(List<String> l) {
Set<String> s = new LinkedHashSet<String>(l);

for (String string : s) {
l.remove(string);
}
Set<String> s2 = new LinkedHashSet<String>(l);

for (String string : s2) {
System.out.println(string);
}
}

}