有如下ListList list = new ArrayList();
list.add("a");
list.add("b");
list.add("a");
list.add("c");
list.add("a");
list.add("b");
list.add("d");现在删除list中重复的元素,注意:只要重复的都要删除,把不重复的放到另外一个LIST中。希望的结果: c,d谢谢各位
list.add("a");
list.add("b");
list.add("a");
list.add("c");
list.add("a");
list.add("b");
list.add("d");现在删除list中重复的元素,注意:只要重复的都要删除,把不重复的放到另外一个LIST中。希望的结果: c,d谢谢各位
public class Test
{
public static void main(String[] args){
Test t = new Test();
List list = t.getList();
List l = new ArrayList();
for (int i = 0 ; i < list.size() ;i++ )
{
boolean b = t.isunique((String)list.get(i) , list);
if (b)
{
l.add(list.get(i));
}
}
}
public List getList(){
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("a");
list.add("c");
list.add("a");
list.add("b");
list.add("d");
return list;
}
public boolean isunique(String s , List list){
int count = 0;
for(int i = 0 ; i < list.size() ; i++){
if (list.get(i).equals(s))
{
count++;
}
}
if (count == 1)
{
return true;
} else {
return false;
}
}
}
顶1楼,用Set删除重复元素
用set会保留a 和 b,还是自己写算法吧
package com.configuration.action;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;public class Test1 { /**
* @param args
*/
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("a");
list.add("c");
list.add("a");
list.add("b");
list.add("d");
List<String> list1 = new ArrayList<String>();
Map<String, Integer> map = new HashMap<String, Integer>();
for(String temp : list){
if(map.containsKey(temp)) map.put(temp, map.get(temp)+1);
else map.put(temp, 1);
}
Iterator<String> iter = list.iterator();
while(iter.hasNext()){
String temp = iter.next();
if(map.get(temp)>1) iter.remove();
}
}
}
private static List<String> distinct(List<String> list)
{
int index = 1;
String temp = list.get(0);
String obj;
tocontinue:for(int j = 1; j < list.size();j++)
{
obj = list.get(j);
if(temp.equals(obj))
{
continue;
}
for(int i = 0; i < index; i++)
{
temp = list.get(i);
if(temp.equals(obj))
{
continue tocontinue;
}
}
list.set(index, obj);
index++;
}
return list.subList(0, index);
}
B:Set(A)
C:B-Set(A-B)
import java.util.*;public class Test
{
public static void main(String[] args)
{
int i = 0 , j = 0;
List<String> list = new ArrayList<String>(); list.add("a");
list.add("b");
list.add("a");
list.add("c");
list.add("a");
list.add("b");
list.add("d");
list = del(list);
for(String e : list)
{
System.out.print(e + " ");
}
}
public static List<String> del(List<String> list)
{
if(null == list) return null;
Collections.sort(list);
int j = 0 , flag = 0; //j下一个待插入的位置,flag标记是否重复
String s = list.get(0); for(int i = 1 ; i < list.size() ; i++) //剔除相同元素
{
String t = list.get(i);
if(true == s.equals(t))
{
flag = 1;
}
else
{
if(0 == flag)
{
list.set(j, s);
j++;
}
flag = 0;
s = t;
}
}
if(0 == flag)
{
list.set(j, s);
j++;
}
return list.subList(0, j);
}
}